0

我有一个实体 Person 与另一个人(导师)有关系。这个人可以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;

    ...

我怎么能有一个没有导师的人?

4

1 回答 1

1

注释的使用@ManyToOne实际上是“指示”您的 JPA 提供者认为Person表/关系有一个外键(这将 b/n 人与导师的 1:n 关系建模,外键不能为空)但是从您的问题来看,我认为您的业务需求本身不需要 1:n ,因此只需删除@ManyToOne注释,如果有人确实有导师,请在 JPA 实体构造函数中手动连接此关系或通过 setter 方法

于 2013-06-22T08:43:52.233 回答