Dojo
最新
最佳
搜索
订阅
解道Jdon
架构设计
领域驱动
DDD介绍
DDD专辑
战略建模
领域语言UL
领域事件
商业分析
工作流BPM
规则引擎
架构师观点
数据工程
产品经理
系统思维
微服务
微服务介绍
微服务专辑
模块化设计
SOA
API设计
clean架构
SpringBoot
分布式事务
事件溯源
Kafka消息
Kubernetes
DevOps
编程设计
GoF设计模式
模式专辑
面向对象
函数式编程
编程语言比较
编程工具比较
形式逻辑
前端编程
Reactive编程
Jdon框架
Rust语言
人工智能
Web3
模因梗
幽默梗
程序员吐槽
面试技巧
Java入门
数字化转型
认知偏差
道德经
更多话题
在hibernate中 需要全部进行初始化?如果lazy=true的话
03-09-05
浆糊
Human和Role是多对多的关系。当我find所有的Human的时候,得到的是一个List,如果lazy是true的话,我是否要对这个List中所有的Human.getRoles()进行初始化?
问题还有,Human.getRoles()中每一个Role中有一个getHumans(),是不是也要初始化啊,如果是的,那么好像陷入了一个漩涡了。。。
如果是lazy=false当然都没有什么问题,但是我做了简单的测试发现速度太慢了。
yehs220
2003-09-05 13:18
>如果lazy是true的话,我是否要对这个List中所有的Human.getRoles()进行初始化?<
当你调用human.getRoles()就自动初始化了。
>如果是lazy=false当然都没有什么问题,但是我做了简单的测试发现速度太慢了<
不太明白你的意思。
lazy=false和lazy=true只是初始化的时机不同而已,不影响初始化的方法。
浆糊
2003-09-05 13:43
如果lazy=true的话,你使用human.getRoles()的话,一定要在session.close()之前Hibernate.initialize(human.getRoles());不然会出现异常的。如果是false的话,则不需要。
yehs220
2003-09-05 14:04
那只需要保证做完所有处理之后再session.close(),
比如在web应用中用filter来close session。