Ordinary hut

人间一福地,胜似天仙宫
posts - 61, comments - 50, trackbacks - 0, articles - 1
是否这样设置了一对多,比如父类是Customer
<set name="orderses" lazy="true" cascade="all" inverse="true">

其实很简单,当子类要进行保存操作的时候,要先到数据库里面去查询是否已经存在了,如果存在了就调用update,否则就是insert,这就产生了那条select
如果是多条Order的话,就会产生多个sql语句
也不能说影响性能,正常写jdbc的时候也需要这么判断的

如果想去掉这个查询语句,那只有麻烦点了,就是去掉
<set name="orderses" lazy="true" cascade="all" inverse="true">
中的cascade="all"
变为
<set name="orderses" lazy="true" inverse="true">
,默认的cascade是null的
然后手工保存子类(Orders),比如:
session.save(cust)
session.save(orders1)
session.save(orders2)

一堆多余的sql了,但是增加了代码的工作量

只有注册用户登录后才能发表评论。


网站导航: