当前位置: 首页 > 知识库问答 >
问题:

如何使用NativeQuery指定实体图形?

景河
2023-03-14

使用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提示,但该值不是EntityGgraph!

那么,是否可以使用命名的本机查询设置实体图?

我当前正在过滤器中为当前REST请求设置用户。我希望能够根据匹配资源方法上的注释动态地为用户获取entityGraph。

我用的是sping-data-jpa, hibernate和jersey

共有1个答案

卫财
2023-03-14

您需要实例化EntityGraph,如下所示

EntityGraph myEG = em.getEntityGraph("User.withProjectsMemberOf");

然后设置fetchgraph,如下所示

query.setHint("javax.persistence.fetchgraph", myEG);
 类似资料:
  • 作为参考,以下请求正文使用postman(普通的旧http客户端)工作: 提前感谢你抽出时间来帮助我。

  • 我将我的应用程序从spring boot 2.2.5升级到2.3.3,并且我正在使用spring data JPA starter和5.4.20.Final板载。我的实体在编译时得到了增强。 现在,当我使用注释与属性覆盖来自的方法时,我收到了这个警告: 即使这个警告-图是正确获取-我只能看到一个SQL查询日志和应用程序的行为之前的更新。 这是我的存储库代码: 这是我的实体: 如何解决此警告?我可以

  • 本文向大家介绍spring如何动态指定具体实现类,包括了spring如何动态指定具体实现类的使用技巧和注意事项,需要的朋友参考一下 在写接口实现时,有时会有多个实现类。这篇文章介绍在调用时通过传入字符串来指定具体的实现类。 一.接口与实现类: 在实现类中重写了toString() 方法,可以自定义字符串,当调用时传入指定的字符串就能获取到相应的bean。  二.register书写: 三.测试类:

  • 我开始学习使用实体图来减少N1问题。但我面临一个问题,findAll方法返回重复数据。 < code >人 我创建一个 pom.xml代码 我的代码出了什么问题?方法 都不能使用 EntityGraph?

  • 问题内容: 我已经制作了一个简单的Entity Framework ASP Core Application,它可以工作,但是我不知道为什么: 我做了这样的上下文: 我有两个表,像这样的模型: 有趣的是,当我运行我的应用程序时,它实际上可以拾取数据。似乎很奇怪,因为我没有指定任何表映射。我假设这只是自动映射,因为指定的表具有相同的名称。 我的问题是: 如果我不希望模型名称与数据库完全相同,该如何指

  • 我的项目是使用Maven构建的。我使用“Jacoco”插件来执行质量检查。 对于一个项目,我想检查在线基础上的测试覆盖率。我想只检查3个包的线路覆盖范围。我如何能指定这张支票? 我试着“包含”了一些包,但是不起作用。我还试图包含根包级别,并排除许多其他包。也不起作用。 如何检查包装 A、B 和 C?请参阅下面的示例: