2017-04-15 2 views
0

Ich versuche, mit Hibernate ein Entity-Produkt mit Selbstreferenz auf andere Produkte zuzuordnen.Hibernate Selbstreferenz

Die JSON geschickt ein Projekt zu erstellen, ist wie folgt:

{"name":"chair", "description":"red chair", 
"parent": {"name":"table","description":"red table"} 
} 

Als ich diese json erhalten, ich brauche das Kind Produkt auf DB bestehen bleiben und setze PARENT_PRODUCT_ID mit dem productId von übergeordnetem Attribute.

Einige Hilfe, bitte?

public class Product implements Serializable { 

private static final long serialVersionUID = 1L; 

@Id 
@Column(name = "ID") 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Integer productId; 

@Column(name = "NAME") 
private String name; 

@Column(name = "DESCRIPTION") 
private String description; 

@OneToMany(cascade=CascadeType.ALL) 
@JoinColumn(name="PRODUCT_ID") 
private List<Image> images; 

@OneToMany(cascade=CascadeType.ALL) 
@JoinColumn(name="PRODUCT_ID") 
private List<Product> children; 

@ManyToOne 
@JoinColumn(name = "PARENT_PRODUCT_ID") 
private Product parent; 

Image.java:

@Entity 
@Table 
public class Image implements Serializable { 

private static final long serialVersionUID = 1L; 

@Id 
@Column(name = "ID") 
@GeneratedValue(strategy = GenerationType.IDENTITY) 
private Integer imageId; 

@Column(name = "TYPE") 
private String type; 

@ManyToOne 
@JoinColumn(name = "PRODUCT_ID", nullable = false) 
private Product product; 

Antwort

0

In den OneToMany Beziehungen, ich glaube, es sein sollte:

@OneToMany(cascade=CascadeType.ALL, mappedBy="parent") 
private List<Product> children; 
+0

Danke, @ María. Und was ist mit dem Feld ManyToOne für PARENT_PRODUCT_ID? –

+0

Es scheint in Ordnung zu sein. –

Verwandte Themen