【发布时间】:2017-10-11 10:58:02
【问题描述】:
我有 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) 我是否应该在私有 XYZ xyz 属性上的 X、Y 和 Z 实体中添加 @OneToMany; ?或者当我们只想借助 XYZ 表查找关系时,是不是没有必要。
2) 在实体 XZY 中,我为实体 X、Y 和 Z 提供了普通的 getter 和 setter。我给出了整个实体。 Hibernate 会自动获取 XYZ 实体中 X、Y 和 Z 的主键吗?
最后一个问题 3) 假设我删除了 XYZ 实体中正在使用的对象 X,休眠会自动删除 XYZ 实体中的记录吗?还是我必须添加其他信息。
很抱歉这些问题,但 Hibernate 对我来说是非常新的。
【问题讨论】: