7

我想在 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.all)上设置一个提取组

在 EclipseLink 网页中写:

... 使用编织技术..

Weaving 和 Java EE 应用服务器

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

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

4

0 回答 0