[英]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.