我有3个可以相互建立关系的实体。因此,解决此问题的一个好方法是使用另一个表来存储3个实体的3个ID。 让我们说实体是X,Y和Z。
@Entity
public class XYZ {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id;
@ManyToOne
@JoinColumn(name = "X_ID")
private X x;
@ManyToOne
@JoinColumn(name = "Y_ID")
private Y y ;
@ManyToOne
@JoinColumn(name = "Z_ID")
private Z z;
public XYZ(){
}
}
实体X,Y和Z有自己的属性和自己的主键。 我有几个问题。
1)我应该将@OneToMany添加到私有XYZ xyz属性的X,Y和Z实体上; ?或者,当我们只想在XYZ表的帮助下找到关系时,它是不必要的。
2)在实体XZY中,我有实体X,Y和Z的正常getter和setter。我给整个实体。 Hibernate会自动在XYZ实体中拍摄X,Y和Z的主键吗?
最后一个问题 3)假设我删除了在XYZ实体中使用的对象X,hibernate会自动删除XYZ实体中的记录吗?或者我是否必须添加其他信息。
很抱歉这些问题,但Hibernate对我来说很新。
答案 0 :(得分:0)
示例:
@OneToMany(mappedBy="x", cascade=CascadeType.REMOVE)
Set<XYZ> xyzSet;