用hibernate保存从表数据的时候,我们可能选择的入口点也不同。
1 以主表为入口点来保存,
2 以从表为入口点来保存。
3 hql/sql语句或者结构化对象查询 来保存。
现在针对1,2点的情况来说明 如果以主表为入口点保存,
例如CLASS-STUDENT 的一对N关系
此时我们要保存STUDENT对象。
如果以CLASS类为入口点的话,
必须这么做:
Class(班级) class = service.getStudent("id");
Student s = new Student();
s.setClass(class);
classService.save(class);
错误的做法:
Class class =new Class(); class.setId("id");
s.setClass(class);
classService.save(class);错误的做法会造成一条新的insert语句。
如果以Student为入口点的话:
class对象就不必须是一个持久化态的实例,class可以是一个临时态的实例。
我们可以这么做:
Class class = new Class();
class.setId("id");//此时class是一个瞬时状态的实例,也可以成为临时态
stu.setClass(class);
StuService.saveStu(stu);
使用Hibernate保存主表与从表数据的高效方式
本文详细介绍了使用Hibernate保存一对多关系数据时,如何以主表或从表为入口点进行操作,避免了不必要的插入操作,并讨论了以不同对象为入口点的优缺点。
1177

被折叠的 条评论
为什么被折叠?



