可以在一个 JPQL 查询中传递多个命名实体图?
Posted
技术标签:
【中文标题】可以在一个 JPQL 查询中传递多个命名实体图?【英文标题】:Multiple named entity graphs can be passed in one JPQL query? 【发布时间】:2015-07-20 01:05:09 【问题描述】:我即将使用 JPA 2.1 的新功能。其中之一是命名实体图。
如果我的实体有两个图表,我可以在查询中使用它们吗?
EntityGraph graph1 = this.em.getEntityGraph("graph.Order.items");
EntityGraph graph2 = this.em.getEntityGraph("graph.Order.address");
例如,如下所示
Map hints = new HashMap();
hints.put("javax.persistence.fetchgraph", graph1);
hints.put("javax.persistence.fetchgraph", graph2);
Order order = this.em.find(Order.class, orderId, hints);
或
entityManager.setHint("javax.persistence.fetchgraph", graph1);
entityManager.setHint("javax.persistence.fetchgraph", graph2);
原因是我的其他查询可能只需要已定义图表中的一个。
【问题讨论】:
不在一个查询中。您可以拥有一个带有子实体图的实体图。 【参考方案1】:我已经测试过了。
如果分配了多个图表,将应用最后一个。
【讨论】:
你知道是否有办法链接图表吗?我问的是我的问题***.com/questions/38505745/… 这是因为在 map 中键应该是唯一的。并且您尝试为单个键输入两个值。这是不可能的。这是核心 java 问题而不是 EntityGraph 问题以上是关于可以在一个 JPQL 查询中传递多个命名实体图?的主要内容,如果未能解决你的问题,请参考以下文章
是否有 JPA / JPQL 查询来搜索春季作为 JSON 传递的实体子集?
springDataJPQL实现增删改查及分页,原生sql查询,根据方法命名规则实现查询