我正在使用@NamedEntityGraph批注从数据库加载图。
@NamedEntityGraph(
name = "Firma.uredjivanje",
attributeNodes = {
@NamedAttributeNode(value="prevodi", subgraph = "prevodi")
},
subgraphs = {
@NamedSubgraph(
name = "prevodi",
attributeNodes = {
@NamedAttributeNode(value = "jezik", subgraph = "jezik")
}
)
}
)
在Spring Data JPA存储库中,我使用的是注释:
@EntityGraph(value="Firma.uredjivanje", type = EntityGraph.EntityGraphType.LOAD)
List<Firma> getByAktivna(boolean aktivna);
一切都按预期工作,期望所有关系都被加入,并且我得到了重复的Firma实体(由于JOIN)。我得到的是{1,1,1,2,2,3},而不是实体ID为{1,2,3}的列表。
获取独立实体的最佳方法是什么(如果这不是类(class)中的错误)。
最佳答案
找到了答案...由于NamedEntityGraph在数据库中进行了JOIN操作,因此它将选择所有不具有DISTINCT的实体。所以解决方案是在方法名称中使用Distinct ...
@EntityGraph(value="Firma.uredjivanje", type = EntityGraph.EntityGraphType.LOAD)
List<Firma> getDistinctByAktivna(boolean aktivna);