如何在 JPA2 中强制使用 @ManyToOne 字段?

Cri*_*tes 3 java hibernate jpa jpa-2.0

我正在为应用程序设计持久性存储库。

我是新来的Hibernate + JPA2和我有麻烦创建更复杂的关系,在这种情况下,外国强制性的关键

一个例子(只是写在记事本上,所以不完全是这个。

我有一个名为 Person 的顶级课程,它可以容纳多个帖子(另一个课程)。

如果我像这样映射我的顶级课程

@Entity
@Table(name="tb_people")
public class Person{
    @Id
    @GeneratedValue
    public long         id;

    @OneToMany(mappedBy="person")
    List<Post>          listOfPosts;

    .
    . more code
    .

}

@Entity
@Table(name="tb_posts")
public class Post{

    @Id
    @GeneratedValue
    public long         id;

    @ManyToOne
    @JoinColumn(name = "person_id")
    Person              person;

    .
    .more code
    .

}
Run Code Online (Sandbox Code Playgroud)

如何使用注释使 Post 中的 person 字段成为必填字段?

我尝试使用 @Column(nullable=false) 但我收到一个异常,告诉我我不能在 @ManyToOne 集合上使用该注释。

谢谢 !

Bog*_*dan 5

你必须使用@JoinColumn(name=..., nullable=false)not @Column

查看完整的 API