使用Hibernate开发租房系统(6)

本文详细介绍了Hibernate中一对多及多对一关联映射的配置方法,并解释了懒加载、急加载及其不同策略的应用场景。此外,还探讨了cascade级联操作如何在实体间进行数据同步。

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

关联级别:
(1)一对多:默认加载方式为懒加载 lazy=true
lazy="false":加载主对象时 会直接将其关联对象一并查询出来
lazy="extra":懒加载 聪明的懒加载 当我调用集合中的某些属性 而不是将集合中所有的内容迭代出来
发出一条合适的sql语句
(2)多对一:默认加载方式为懒加载 lazy=proxy 依靠代理对象将目标对象取出
lazy="false":加载主对象时 会直接将其关联对象一并查询出来
lazy="no-proxy":懒加载 直接访问目标对象

openSessionInView
(1)解决session对象的分配问题 1次请求 只会存在一个session
(2)解决事务
(3)懒加载和session息息相关 完美解决
缺陷:事务管理并不完善

cascade
使用一方的集合装载所有的对象
在对应的set bag标签上 赋予cascade

单向一对多的配置:
①编写多方实体类
②编写一方实体类 (在一方实体类中 增加一个多方的集合对象)
③编写多方的实体映射文件
④编写一方的实体映射文件(在文件中增加 一个标签set)
⑤将2个实体映射文件注册到hibernate.cfg.xml
ps:如果想想把set 换成List
a.将实体类中的set换成List
b.将配置文件中的set标签换成bag标签

单项多对一关联
①编写一方的实体类
②编写多方的实体类 (将多方实体类中原有的外键属性 更改成1方的对象类型)
③编写一方的实体映射文件
④编写多方的实体映射文件(将原来的外键的配置属性 更改成many-to-one)
⑤将两个实体映射文件注册到hibernate.cfg.xml

转载于:https://www.cnblogs.com/a2367763409/p/6649365.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值