Hibernate (9)双向多对一cascade属性
来源:互联网 发布:阿里云客服投诉电话 编辑:程序博客网 时间:2024/06/06 13:46
进一步对上一节的代码进行优化
如下:
@Testpublic void add() {Grade g = new Grade("Java一班", "Java一班软件开发");Student stu1 = new Student("小明", "男");Student stu2 = new Student("小芳", "女");//设置关联关系同时建立单向一对多和单向多对一//单向一对多g.getStudents().add(stu1);g.getStudents().add(stu2);//单向多对一stu1.setGrade(g);stu2.setGrade(g);session.save(g);session.save(stu1);session.save(stu2);}
我们已经设置了关联关系,学生已经添加到班级中了,也就是说班级知道有哪些学生。那么在保存班级的时候不应该把班级的学生自动添加到数据库对应的学生表吗?
保存班级的时候理应发现班级中存在学生,并且数据库中没有对应的学生信息,这是保存班级的时候应该自动把它包含的学生保存到数据库。
这种操作称为级联.
如何进行配置呢?
如何设置才能在保存班级的时候自动保存学生呢?
设置Grade.hbm.xml
测试方法就可以这样写了(只需保存班级,不需要保存学生的操作了)如下
@Test
public void add() {
Grade g = new Grade("Java一班", "Java一班软件开发");
Student stu1 = new Student("小明", "男");
Student stu2 = new Student("小芳", "女");
//设置关联关系同时建立单向一对多和单向多对一
//单向一对多
g.getStudents().add(stu1);
g.getStudents().add(stu2);
//单向多对一
stu1.setGrade(g);
stu2.setGrade(g);
session.save(g);
// session.save(stu1);
// session.save(stu2);
}
当然也可以进行反向操作,保存学生的时候自动保存班级:
同时,如果保存学生的时候,发现数据库中没有班级,自动添加班级到数据库
Student.hbm.xml添加
这样保存学生的时候如果数据库中没有对应的班级,就会自动添加班级到数据库了....
0 0
- Hibernate (9)双向多对一cascade属性
- Hibernate中的双向多对一关联以及 inverse属性、cascade属性的用法
- hibernate多对一关联映射(cascade的使用)
- hibernate多对一关联映射(cascade的使用)
- hibernate多对一关联映射(cascade的使用)
- Hibernate多对一、多对多关系--cascade、inverse
- hibernate中一对多(多对一)双向关联
- hibernate 关联映射 双向多对一(一对多)
- Hibernate双向一对多(多对一)
- hibernate进阶 (8)双向多对一
- 五、hibernate多对一(双向关联)
- Hibernate Annotation 多对一 双向
- Hibernate双向多对一关系
- hibernate双向多对一映射关系
- hibernate ORM映射:双向多对一
- Hibernate双向多对一关系
- Hibernate学习笔记----双向多对一
- hibernate 多对一的双向理解
- HDU 1814 Peaceful Commission(2-SAT)
- 【noip2016模拟day1】【线段树】【dp】
- 用方法论学Java之——第一章:Java 历史
- Spring学习历程---Spring学习前必学的知识之反射机制
- hdu 1226 超级密码 广搜
- Hibernate (9)双向多对一cascade属性
- 认识变量:(JS)
- C语言之分割字符串
- mysql乐观锁总结
- 16. 数据类型
- bestcoder-Fxx and string
- 5分钟理解JS中的this关键字
- 普通web项目转换为Maven, 解决 Field 'SYSTEM_PROPERTIES_MODE_ENVIRONMENT' not found in class
- 字节,半字对齐,字对齐方式