2015-10-05 57 views
0

我不知道如何在这里描述我的问题...如何以编程方式确定应该加载一个懒惰的集合?

我有一个由hibernate控制的JPA注释实体。我使用querydsl动力回收来控制一些加载。

我们在某些情况下想要获取某些特定领域的实体,但在其他情况下并不存在。基本上,我们其余数据的请求者可以使用$ expand参数来决定扩展具有额外集合的原始数据。

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

我想知道是否有一种方法,以编程方式打开'开'或'关'字段,我不想从后端延迟加载,而不分离整个实体?

+0

这是一个EntityGraph的用途,试过这些? –

回答

0

也许这个建议不适合正是你所期望的,但你可以设置这个选项(使用Hibernate):

@ org.hibernate.annotations.LazyCollectionOption.EXTRA

使用此选项,一切都将被设置为避免加载集合。它提供对集合大小的访问,而不会加载集合中的项目。