我有一个实体与另一个人(导师)有关系的人。此人可以是null
。我以为只有Constraints.Required
注释强迫我的导师设定。
如果我删除ManyToOne
注释,导师将无法连接。
@Entity
public class Person extends Model {
@Id
@Constraints.Required
@Formats.NonEmpty
public Integer id;
@ManyToOne
@Constraints.Required
public User user;
@Constraints.Required
public String firstName;
@Constraints.Required
public String lastName;
@ManyToOne
public Person mentor;
...
如果没有导师,我怎么能有人?
答案 0 :(得分:1)
@ManyToOne
注释的使用实际上是“指示”你的JPA提供者认为Person
表/关系有一个外键(这模拟了1:n关系b / n人与导师和外键不能为空)但是根据你的问题,我发现你的商业需求不需要1:n 本身所以只需删除@ManyToOne
注释以及一个人确实有导师的情况,在JPA实体构造函数中手动连接此关系或通过setter方法