EntityGraph - 您必须在描述符处定义提取组管理器才能在查询上设置提取组

2024-02-11

我想在 EclipseLink 和 GlassFish 中使用实体图。

    @Entity
    @NamedQueries({
         @NamedQuery(name = "invoice.all", query = "SELECT i FROM Invoice i")})


    @NamedEntityGraph(name = "graph.invoice",
                attributeNodes = {@NamedAttributeNode("invoiceNum")})

    @Table(name = "INVOICE")
    public class Invoice implements Serializable {
            private int id;
            private String bizonylatSzam;
            ...
        }

EntityManager em = getEntityManagerFactory().createEntityManager();
EntityGraph eg = em.createEntityGraph("graph.invoice");
List<Invoice> invoiceList =  em.createNamedQuery("invoice.all").setHint("javax.persistence.fetchgraph", eg).getResultList();

如果我使用javax.persistence.loadgraph绘制一切正常,但如果我使用javax.persistence.fetchgraph我有一个例外:

org.eclipse.persistence.exceptions.QueryException 异常描述:您必须在描述符 (Invoice) 处定义提取组管理器,以便在查询 (invoice.all) 上设置提取组

在EclipseLink网页中写入:

...使用编织技术..

Weaving 和 Java EE 应用服务器

默认的 EclipseLink 编织行为适用于任何 Java EE 使用 EclipseLink JPA 持久性的 JPA 兼容应用程序服务器 提供者。要更改此行为,请修改 persistence.xml 文件 (对于您的 JPA 实体或 POJO 类)使用 EclipseLink JPA 属性、EclipseLink JPA 注释或两者。

我不明白有什么问题。 :(


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EntityGraph - 您必须在描述符处定义提取组管理器才能在查询上设置提取组 的相关文章

随机推荐