繁体   English   中英

lazy = false,eager和immediate fetching之间的区别是什么?

[英]What's the difference between lazy = false, eager and immediate fetching?

我是Hibernate对象持久性的新手。 我正在读一本书,试图了解懒惰设置与错误,急切和即时提取之间的区别,但我没有看到任何区别。 任何帮助?

提前致谢!

立即和急切提取之间的主要区别在于立即提取,有两个单独的查询为拥有对象触发一个,为关联对象触发另一个。 但是对于急切的提取,将只有一个查询被触发,包括内连接/外连接以获得与实体的关联对象。

我相信“立即”是“渴望”的同义词(渴望成为JPA,Hibernate实现,定义)

懒惰就像听起来一样。 在必要之前不要做任何事情。 渴望意味着......听起来如此。

如果Foo有一个Collection,并且你将它设置为lazy,那么只有当你需要该集合的内容时才会选择,加载等等。而如果它很渴望,它会在加载Foo时加载Bars。 如果您急切地加载急切加载实体集合的实体集合,这可能会有问题,等等。

但是,如果你把一切都变得懒惰,那么你可能会遇到过多的查询和往返。 您必须选择适合您使用实体的方式。

如果你想要一条经验法则,那就从懒惰开始吧。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM