接上:
2、将inverse设置为false;将casecade设置为none,保持测试代码不变。
发出如下sql语句:
Hibernate: insert into tbranchinfo (address, depname, id) values (?, ?, ?)插入分支机构信息
Hibernate: update tseal set branchInfoId=? where id=?更新关联关系,但是并没有插入seal,原因在于cascade=none
于是会报异常如下:
org.hibernate.TransientObjectException: object references an unsaved transient instance - save
the transient instance before flushing: com.indigopacific.iessportal.persistent.Seal
没有保存一个瞬时的seal对象
3、将inverse设置为true,将casecade设置为save-update,保存测试代码不变。
发出如下sql语句:
Hibernate: insert into tbranchinfo (address, depname, id) values (?, ?, ?)
Hibernate: insert into tseal (sealName, id) values (?, ?)
说明:
由于inverse=true将维护级联关系的任务交给了seal,因此当保存branchinfo时不会考虑级联关系。
只发出插入tseal的语句,不会更新级联关系。
4、将inverse设置为true,将casecade设置为none,保持测试带不变
发出如下sql语句:
Hibernate: insert into tbranchinfo (address, depname, id) values (?, ?, ?)
说明:
只会插入branchinfo信息,不会级联保存seal,不会更新关系