Hibernate---inverse,cascade(3)
来源:互联网 发布:炉石退环境知乎 编辑:程序博客网 时间:2024/06/06 01:48
更新分支机构:
1、设置inverse=true cascade=none,更新代码如下:
session = HibernateSessionFactory.currentSession();
tx = session.beginTransaction();
BranchInfo branchInfo = (BranchInfo) session.load(BranchInfo.class, Long.valueOf(6));
branchInfo.setAddress("bj5");
Set<Seal> sealSet = new HashSet<Seal>();
Seal seal = new Seal();
seal.setSealData(null);
seal.setSealModels(null);
seal.setSealName("sealName7");
sealSet.add(seal);
branchInfo.setSealSet(sealSet);
session.save(branchInfo);
System.out.println("success_____________");
tx.commit();
发出如下sql语句:
Hibernate: update tbranchinfo set address=? where id=?
说明:
虽然重新设置了branchinfo关联的seal集合,但由于cascade=none,没有级联保存,
由于inverse=true,因此没有更新级联关系。
2、设置inverse=true cascade=save-update,测试代码不变,发出sql语句如下:
Hibernate: select max(id) from tseal
Hibernate: insert into tseal (sealName, id) values (?, ?)
Hibernate: update tbranchinfo set address=? where id=?
说明:
更新了branchinfo的address属性,由于设置cascade=save-update,
因此级联保存tseal表,由于inverse=true所以并没有维护关系
3、设置inverse=false cascade=none,发出sql语句如下:
Hibernate: update tseal set branchInfoId=null where branchInfoId=?
Hibernate: update tseal set branchInfoId=? where id=?
说明:
将原先的seal对象和branchInfo解除管理关系,并且更新新的seal和branch关联关系,但是由于
cascade=none所以没有将新seal插入表中因此在更新级联关系时报如下异常:
org.hibernate.TransientObjectException: object references an unsaved transient instance
4、设置inverse=false cascade=save-update发出sql语句如下:
Hibernate: select max(id) from tseal
Hibernate: insert into tseal (sealName, id) values (?, ?)
Hibernate: update tseal set branchInfoId=null where branchInfoId=?
Hibernate: update tseal set branchInfoId=? where id=?
将原先的seal对象和branchInfo解除关联关系,并且更新新的seal和branch关联关系
- Hibernate---inverse,cascade(3)
- Hibernate---inverse,cascade(1)
- Hibernate---inverse,cascade(2)
- Hibernate---inverse,cascade(4)
- Hibernate 学习笔记3 inverse和 cascade
- (hibernate)inverse,cascade详细分析(举例说明)
- (转)hibernate中的Cascade与Inverse
- (hibernate)inverse,cascade详细分析(举例说明)
- 浅谈hibernate(cascade,lazy,inverse,fetch)
- hibernate 级联(cascade和inverse)
- hibernate 级联(cascade和inverse)
- 【Hibernate】inverse和cascade
- Hibernate级联--cascade,inverse
- hibernate inverse cascade详解
- Hibernate---inverse,cascade总结
- hibernate inverse cascade
- hibernate inverse cascade
- Hibernate-----cascade VS inverse
- LEARNING SOAPUI
- win32去掉菜单栏的方法
- UNIX 高手的 20 个习惯--克服不良的 UNIX 使用模式
- HDOJ 畅通工程
- Best Practices for C# Exception Handling
- Hibernate---inverse,cascade(3)
- 9.5
- 多线程1
- 从一个layout id创建各个tab页
- 宏碁Aspire 5749德国开售 MeeGo系统搭配Sandy Bridge CPU
- 动态创建一个view来做为tab页的内容
- 传递一个intent来传递参数,并以新启动的activity做为tab页的内容,这个应该是比较方便传递参数的
- 12章(一)Java流与文件操作
- OGRE Demo_Compositor