如何以编程方式确定应该加载一个惰性集合?

时间:2015-10-05 15:52:48

标签: hibernate jpa

我不确定如何在这里描述我的问题...

我有一个由hibernate控制的JPA注释实体。我也使用querydsl驱动的repos来控制一些加载。

我们在某些情况下要获取某些实体字段,但在其他情况下则不然。基本上,我们的rest数据的请求者可以使用$ expand参数来决定使用额外的集合来扩展原始数据。

我的问题是,如果用户没有请求扩展,那么简单的延迟加载器似乎不足以阻止加载实体的这些可扩展字段。我们的一些逻辑自动遍历所有getter并处理它们,因此它总是会强制加载延迟加载的字段。

我想知道是否有办法以编程方式开启' on'或者'关闭'我不想从后端延迟加载而不分离整个实体的字段?

1 个答案:

答案 0 :(得分:0)

也许这个建议并不完全符合您的期望,但您可以设置此选项(使用Hibernate):

@ org.hibernate.annotations.LazyCollectionOption.EXTRA

使用此选项,将设置所有内容以避免加载集合。它提供对集合大小的访问,而无需加载集合中的项目。