文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
双向 1-N 关联
对于 1-N 关联,Hibernate 推荐使用双向关联,而且不要让 1 的一端控制关联关系,而使用 N 的一端控制关联关系。
双向的 N-1 关联与 1-N 关联是完全相同的两种情形。两端都需要增加对关联属性的访问,N 的一端增加引用到关联实体的属性,1 的一端增加集合属性,集合元素为关联实体。
域模型
从 Order 到 Customer 的多对一双向关联需要在 Order 类中定义一个 Customer 属性,而在 Customer 类中需定义存放 Order 对象的集合属性
关系数据模型
ORDERS 表中的 CUSTOMER_ID 参照 CUSTOMER 表的主键
Notice
当 Session 从数据库中加载 Java 集合时,创建的是 Hibernate 内置集合类的实例,因此,在持久化类中定义集合属性时,必须把属性声明为 Java 接口
- Hibernate 的内置集合类具有集合代理功能,支持延迟检索策略
- 事实上,Hibernate 的内置集合类封装了 JDK 中的集合类,这使得 Hibernate 能够对缓存中的集合对象进行脏检查,按照集合对象的状态来同步更新数据库。
在定义集合属性时,通常把它初始化为集合实现类的一个实例,这样可以提高程序的健壮性,避免应用程序访问取值为 null 的集合的方法。
例如: private Set<Order> orders = new HashSet<Order>();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论