在hibernate中使用延迟加载时需要关系

时间:2016-12-15 10:23:58

标签: java spring hibernate jpa

我有项目,其中所有模型关系(1:m或1:1)获取类型被定义为惰性。 现在考虑我有一个名为M的模型,它有三个关系a,b和c,所有都是1:m。 现在我有三项服务: 服务A 服务B 服务-C

如果Service-A返回模型M,则必须填充其关系a,尽管其他b,c包含代理模型。 如果Service-B返回模型M,则必须填充其关系b,尽管其他a,c包含代理模型。 与Service-C相同

任何人都知道如何完成这项工作吗?

此处的另一个场景是,只有一个服务和用户提供加载关系a或b或c的参数然后如何实现?

1 个答案:

答案 0 :(得分:1)

最简单的方法是在事务中填充它们:

在ServiceA position: relative;

在ServiceB entity.getCollectionB().size()

查看其他方式: http://www.thoughts-on-java.org/5-ways-to-initialize-lazy-relations-and-when-to-use-them/

编辑:一对一关系的延迟加载也不适用于实体图。无论有没有它,您都需要字节码检测。优化列读取并不像优化行读取那么重要。请参阅:http://www.thoughts-on-java.org/jpa-21-entity-graph-part-1-named-entity/#comment-219