首页 > 解决方案 > 休眠中的懒惰和渴望获取

问题描述

默认情况下,在使用 XML 的休眠中延迟获取是如何工作的?

标签: sqlhibernatefilterhqlhibernate-mapping

解决方案


hibernate lazyeager有两种实体加载模式。如果您通过 XML 映射定义实体配置,则在关系标记(即等)中定义惰性属性many-to-oneone-to-many

如果你没有定义延迟属性,那么默认情况下延迟加载是启用的,即lazy的值为true,但是如果你想要急切加载,那么你需要通过设置关闭延迟加载lazy=false

现在,如果您lazy=true在尝试访问子实体时执行 then select 语句,而 if lazy=false(即急切获取),那么您会注意到子实体的选择查询在父实体的选择查询后立即触发。(您可以通过在控制台日志中将 showSql 设置为 true 来注意到此行为。)

希望它能清除您的所有疑问


推荐阅读