我无法在QueryDSL中找到任何实现获取计划的方法,我尝试了很多。你能给我任何提示吗?另外,你知道更好的方法来选择要获取哪些字段以及在不同情况下懒散加载哪些字段?我使用批量提取,因此我无法使用JOIN FETCH。
答案 0 :(得分:6)
使用像这样的EntityGraph定义
@NamedEntityGraph(
name = "post",
attributeNodes = {
@NamedAttributeNode("title"),
@NamedAttributeNode(value = "comments", subgraph = "comments")
},
subgraphs = {
@NamedSubgraph(
name = "comments",
attributeNodes = {
@NamedAttributeNode("content")}
)
}
)
可以在Querydsl查询
上像这样激活EntityGraph
实例
EntityGraph postGraph = em.getEntityGraph("post");
query.setHint("javax.persistence.fetchgraph", postGraph)
来源:http://hantsy.blogspot.fi/2013/12/jpa-21-entity-graph.html