Jestem nowy w JPA 2.1 i zacząłem używać tylko ostatnio nazwanych wykresów jednostek. Dla mojego projektu mam mapowania następującą zależność w JPA 2.1:Podraport nazwanego obiektu Sub-Subgraph
Order -> OrderDetail -> Produkty -> productline
Pytanie:
chcę pouczać WZP do przyłączenia się i sprowadzić właściwie wszystkie potrzebne dane. Jak na razie działa to bezbłędnie dla Zamów -> ZamówDetail -> Produkt, ale do tej pory nie udało mi się dodać wykresu dodatkowego sub-Sub, aby przejść tak głęboko, jak klasa ProductLine. Jak utworzyć subgraph subgraph? Czy otrzymujesz ProductLine produktu?
Oto moje podmioty (pobierające i ustawiające pominięta):
Zamówienie
@Entity
@Table(name="ORDERS")
@NamedEntityGraph(
name = "graph.Order.details",
attributeNodes = {
@NamedAttributeNode(value = "details", subgraph = "graph.OrderDetail.product")
},
subgraphs = {
@NamedSubgraph(name = "graph.OrderDetail.product", attributeNodes = @NamedAttributeNode("product"))
}
)
public class Order implements Serializable{
@Id
@Column(name = "orderNumber")
private Long number;
@Column(name = "orderDate")
private Date date;
@OneToMany(mappedBy = "order")
private List<OrderDetail> details;
}
OrderDetail
@Entity
@Table(name = "orderdetails")
public class OrderDetail implements Serializable{
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "orderNumber")
@Id
private Order order;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "productCode", nullable = false)
@Id
private Product product;
@Column(name = "orderLineNumber")
private int lineNumber;
@Column(name = "quantityOrdered")
private int quantity;
wyrobów
@Entity
@Table(name = "products")
class Product {
@Column(name = "productCode")
@Id
private String code;
@Column(name = "quantityInStock")
public int quantity;
@ManyToOne
@JoinColumn(name = "productLine")
private ProductLine line;
productline
@Entity
@Table(name = "productlines")
public class ProductLine {
@Id
@Column(name = "productLine")
private String line;
@Column
private String textDescription;
Nie jestem pewien, czy jest to możliwe, ale co się stanie, jeśli utworzysz kolejny NamedSubgraph w podgrafach, określisz jego typ Produktem, z atrybutami będącymi wierszami, a następnie odwołasz się do tego z @NamedAttributeNode ("produkt"), który masz ? –