我想在 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 注释或两者。
我不明白有什么问题。:(