我正在使用JPA(休眠)并遇到问题。我有2个实体。 1是' Planes ',第二个是' Air-port '。我现在创建的是一个搜索Web应用程序,我正在尝试为它准备所有部分。因此,用户需要通过“Air-port”搜索“飞机”,因此它是“ OneToMany ”关系。 但问题是,如果我将它作为“OneToMany”,例如:
飞机实体
//...
@OneToMany(mappedBy='plane')
private Set<Planes> planes = new HashSet<Planes>();
//...
因此, 航空港实体
//...
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name="AirPort_ID")
private Planes plane;
但它不合适,因为在这种情况下,一架飞机只有一个机场。这不是真的。因此,当用户点击Air-port ID时,它将选择其中的所有平面。但是,每架飞机只有1个空港。 所以,要解决这个问题,使用ManyToMany可能会更好吗? 机场可以有很多飞机,飞机可以有很多机场。
答案 0 :(得分:3)
您需要问问自己Plane
和Airport
之间的关系究竟是什么。我可以想到很多可能性。
您要在数据库中代表哪些内容?在我看来,这些关系中的三个是一对多的,其中一个是多对多的。因此,在决定其基数之前,您需要确定您尝试表达的关系。
答案 1 :(得分:0)
由于机场可以拥有许多飞机和许多机场的飞机,因此在这种情况下,多对多的关系将是正确的方式