我有一个 Airport 实体,就像;
@Table(name = "Airport")
public class Airport extends BaseEntity {
@Id
@Column(name = "Id", unique = true, updatable = false)
private Long id;
@Column(name = "Name", unique = true)
private String name;
@Column(name = "IcaoCode", unique = true)
private String icaoCode; //International Civil Aviation Organisation
private String city;
}
而且我还有 Route 实体,它有出发机场和目的地机场;
@Table(name = "Route")
public class Route extends BaseEntity {
@Id
@Column(name = "Id", unique = true, updatable = false)
private Long id;
@Column(name = "DeparturePlace")
private Airport departurePlace;
@Column(name = "DestinationPlace")
private Airport destinationPlace;
}
我想做的是创建具有唯一一对目的地-出发地并且目的地和出发地不能彼此相等的路线。
编辑: 一条航线只能由出发地和目的地两个机场组成。此外,如果我有像 A-B-C 这样的机场,我应该被允许创建不同的独特路线,如下所示;
A->B
A->C
B->C
B->A
C->A
C->B
Airport 和 Route 之间是否存在一对一的关系?如果是这样,我应该如何注释 Route 中的 beginPlace 和 destinationPlace 字段?
答案 0 :(得分:1)
是的,有一对一的关系,所以你的 Route 实体会像
mystic
喜欢评论讨论一个机场可以在多条航线上:
在 Airport 实体中,您需要添加
@OneToOne(cascade= CascadeType.ALL)
@JoinColumn(name = "DeparturePlace_ID", referencedColumnName = "id")
private Airport departurePlace;
@OneToOne(cascade= CascadeType.ALL)
@JoinColumn(name = "DestinationPlace_ID", referencedColumnName = "id")
private Airport destinationPlace;
希望有用