hibernate实在是搞不懂啊 主从表这是要逆天么

本文详细介绍了使用Hibernate保存一对多关系数据时,如何以主表或从表为入口点进行操作,避免了不必要的插入操作,并讨论了以不同对象为入口点的优缺点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


用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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值