Ich arbeite, um die neuen Funktionen von JPA 2.1 mit Feder ex erkunden. EntityGraph-Funktion, indem eine Beispiel-CRUD-Operation anhand von Beispielbeziehungen zwischen Produkten, Bestell- und Bestellpositionen erstellt wird.Jpa-Entity-Graph mit Hinweisen und benannte Abfrage
unten ist der Code ich für die Hauptbohne, definiere ich eine benannte Abfrage alle Daten abzurufen, und Entity-Graph
@Entity
@Table(name = "purchase_order")
@NamedQueries({
@NamedQuery(name = "Order.findAll", query = "SELECT o FROM Order o")})
@NamedEntityGraph(name = "graph.Order.items", attributeNodes = @NamedAttributeNode(value = "items", subgraph = "items"),
subgraphs = @NamedSubgraph(name = "items", attributeNodes = @NamedAttributeNode("product")))
public class Order implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id", updatable = false, nullable = false)
private Long id = null;
@Version
@Column(name = "version")
private int version = 0;
@Column
private String orderNumber;
@OneToMany(mappedBy = "order", fetch = FetchType.LAZY)
private Set<OrderItem> items = new HashSet<OrderItem>();
... getter and setter methods
Ich versuche, die benannte Abfrage und die Grafik zu nennen von der DAO-Methode habe ich als die folgende
public List<Order> getOrderDetails() {
return (List<Order>) entityManager.createNamedQuery("Order.findAll").setHint("javax.persistence.loadgraph",
entityManager.getEntityGraph("graph.Order.items")).getResultList();
}
das Ergebnis der DAO-Methode gibt Null-Index aufrufen, obwohl die Datenbank viele Zeilen, obwohl ich versucht, Hinweise enthält zu ändern zwischen "javax.persistence.fetchgraph" und "javax.persistence.loadgraph" bitte beraten.