【发布时间】:2019-02-02 06:45:15
【问题描述】:
在 hibernate 中使用 XML 默认情况下延迟获取是如何工作的?
【问题讨论】:
标签: sql hibernate filter hql hibernate-mapping
在 hibernate 中使用 XML 默认情况下延迟获取是如何工作的?
【问题讨论】:
标签: sql hibernate filter hql hibernate-mapping
hibernate lazy和eager有两种实体加载模式。如果您通过 XML 映射定义实体配置,则在关系标记中定义 lazy 属性(即many-to-one、one-to-many 等)。
如果你没有定义延迟属性,那么默认情况下延迟加载是启用的,即延迟的值为 true 但是如果你想要预先加载,那么你需要通过设置关闭延迟加载lazy=false.
现在,如果您的lazy=true then select 语句在您尝试访问子实体时执行,而如果lazy=false(即急切存在),那么您会注意到子实体的选择查询在选择父实体的查询。
(您可以通过在控制台日志中将 showSql 设置为 true 来注意到此行为。)
希望它能解决您的所有疑问
【讨论】: