【发布时间】:2017-04-30 02:39:48
【问题描述】:
使用 NamedNativeQuery 时是否可以设置 namedEntityGraph?
我正在按如下方式获取用户实体:
try {
return (User) em.createNamedQuery("OAuthToken.getUser")
.setParameter("token", accessToken)
.setParameter("expirationInterval", expirationInterval)
.setHint("javax.persistence.fetchgraph", "User.withProjectsMemberOf")
.getSingleResult();
} catch (NoResultException e) {
return null;
}
实体图:
@NamedEntityGraphs({
@NamedEntityGraph(name = "User.withProjectsMemberOf",
attributeNodes = @NamedAttributeNode("projectsMemberOf")),
})
但是我收到以下警告:
javax.persistence.fetchgraph 提示已设置,但值不是 EntityGraph!
那么是否可以使用命名的原生查询来设置实体图?
我目前正在为过滤器中的当前 REST 请求设置用户。我希望能够根据匹配资源方法上存在的注释为用户动态获取 entityGraph。
我正在使用 spring-data-jpa、hibernate 和 jersey
【问题讨论】:
-
您将实体图的名称指定为“User.withProjectsMemberOf”,但将 fetchgraph 称为“User.withMemberProjects”。
-
@NeilStockton 很好,但我仍然遇到同样的错误
标签: hibernate jpa spring-data-jpa