customer中也有好几个字段需要从别的表获取id,我现在的做法是逐行逐列读取,然后把customer信息全部读取后,就存储,获取
customerid后赋值给linkman的customerid,然后再保存linkman ,也就是说一个for就要查好几次表,和插入2次数据,这样的执行
效率太低了,大家有什么好办法,多谢赐教
customer中也有好几个字段需要从别的表获取id,我现在的做法是逐行逐列读取,然后把customer信息全部读取后,就存储,获取
customerid后赋值给linkman的customerid,然后再保存linkman ,也就是说一个for就要查好几次表,和插入2次数据,这样的执行
效率太低了,大家有什么好办法,多谢赐教
你何必逐行逐列读取,要是可以的话分批缓存到内存中再作操作,逻辑中一次获取一整行数据,利用工厂模式,生成一个聚合(明显customer内聚在linkman),之后就是所谓的持久化操作。
简单的读取加入能再快么,写一次已经最快了,“插入2次数据”?干嘛不一次性加入,就一条sql就行。
你原来的做法是把硬盘作为数据交互地方,不慢才怪,与面向数据库思维一样,引入缓存思想看看。
class linkman{
private customer xx;
}
这个内聚性,总得找到吧。customer本来就在linkman中,怎么会得不到呢?还需要再查么?
用hibernate逆向工程话,倒是要修改一下生成linkman的getCustomerId方法,或者自己另外建个实体,插入服务里再分开更新。
2个表的问题,无论你几个表,只要不是交互操作,一条HQL足以,这应该是你的知识空缺了。
[该贴被SpeedVan于2010-12-09 17:53修改过]
[该贴被SpeedVan于2010-12-09 23:17修改过]