EntityGraph - You must define a fetch group manager at descriptor in order to set a fetch group on the query
Asked Answered
S

0

7

I would like use Entity Graphs in EclipseLink and 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();

If I use javax.persistence.loadgraph graph everything OK, but if i use javax.persistence.fetchgraph I have an exception:

org.eclipse.persistence.exceptions.QueryException Exception Description: You must define a fetch group manager at descriptor (Invoice) in order to set a fetch group on the query (invoice.all)

In EclipseLink webpage write:

... using Weaving technologi..

Weaving and Java EE Application Servers

The default EclipseLink weaving behavior applies in any Java EE JPA-compliant application server using the EclipseLink JPA persistence provider. To change this behavior, modify your persistence.xml file (for your JPA entities or POJO classes) to use EclipseLink JPA properties, EclipseLink JPA annotations, or both.

I dont understand what is the problem. :(

Snitch answered 16/11, 2017 at 20:15 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.