我想在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.load
图表一切正常,但如果我使用javax.persistence.fetchgraph
我有例外:
org.eclipse.persistence.exceptions.QueryException 异常描述:您必须在描述符(Invoice)中定义一个获取组管理器,以便在查询上设置一个获取组(invoice.all)
在EclipseLink网页上写:
......使用Weaving technologi ..
编织和Java EE应用程序服务器
默认的EclipseLink编织行为适用于任何Java EE 使用EclipseLink JPA持久性的JPA兼容应用程序服务器 供应商。要更改此行为,请修改persistence.xml文件 (对于您的JPA实体或POJO类)使用EclipseLink JPA 属性,EclipseLink JPA注释,或两者兼而有之。
我不明白这是什么问题。 :(