JPA关系OneToMany

时间:2016-12-30 01:38:05

标签: jpa

我在想我理解这些关系。但现在......我不确定。我有一个问题是添加正确的注释。

我有会员和关系课程。

关系

private GT_Member Mother;

private GT_Member Father;

private List<GT_Member> children;

一个成员可以作为母亲或父亲参与几个关系(参考他的性别),但他可能只是作为一个孩子的一个关系。

我认为将母亲和父亲注释为@OneToMany。

但我不确定我是否可以将List注释为@OneToOne ??

2 个答案:

答案 0 :(得分:1)

在为数据库模式建模正确的实体关系模型和可视化ORM(对象关系模型)时,这似乎是一个问题。

请先查看系统中的主要数据实体,而不是从成员和关系类开始。他们将如何相互联系。 我个人认为Relation不是一个好的JPA实体。 会员看起来更像是一个好的实体,可以体现这种关系 假设一个父亲和一个母亲,一对多似乎是错的,但作为父亲或母亲可以有很多孩子,正确的注释应该是@ManyToOne。

孩子肯定是OneToMany,是的,您可以将List子项注释为@OneToMany。

会员可以拥有以下属性:

@Entity
   public class Member implements Serializable{
    @ManyToOne
    private Member mother;
    @ManyToOne
    private Member father;
    @OnetoMany
    private List<Member> children;
 }

这解决了两个用例,在这个简单的示例中,不需要Relation类。 希望这有帮助。

答案 1 :(得分:0)

关系实体的使用是因为我想保存关系状态的信息。 Donc我将存储有关所有已婚人士等的信息。实体关系还有其他领域,如类型(中立,已婚,未婚夫等......)。