JPA Hibernate集合未延迟加载

JPA Hibernate集合未延迟加载,第1张

JPA Hibernate集合未延迟加载

惰性集合不包含代理。该集合本身是一个延迟加载的集合。这意味着当您从数据库中获取线程时,其回复列表将不会初始化

调用

getReplies()
将仅返回此未初始化的列表。只有在调用列表本身的方法(如
size()
iterator()
)时,Hibernate才会通过执行SQL查询来初始化列表,该查询加载线程的所有回复的状态。

使用调试器检查集合中包含的内容不是一个好主意,因为调试器通常在背后的列表上调用方法,这会导致列表初始化。您可以检查是否使用

Hibernate.isInitialized(thread.getReplies())
方法初始化了集合。

关于另一个问题:Hibernate用于将数据库行映射到对象。如果某个线程有回复,则Hibernate不会通过向您返回一个空列表来告诉您它没有任何线程。那将是一个严重的错误。如果您不想加载回复,只需不要在回复列表中调用任何方法。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5564695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-14
下一篇 2022-12-14

发表评论

登录后才能评论

评论列表(0条)

保存