我有一個名爲Flight
的域類,它表示已經飛行的航班。我還有另外一門課叫Movement
,它可以代表出發地或到達地,並且包含日期和時間以及機場的運動發生地點。雙向一對一映射到多個字段
@Entity
public class Flight implements Serializable {
private Movement departure;
private Movement arrival;
}
@Entity
public class Movement implements Serializable {
@Temporal(TemporalType.TIMESTAMP)
private Date dateTime;
@ManyToOne
private Airport airport;
private Flight flight;
}
不過,我不知道如何正確地標註在Movement
類的flight
領域。我想通了Flight
類有是關係的擁有方,因爲如果不是這樣,沒有辦法判斷一個特定Flight
的Movement
是departure
或arrival
:
@OneToOne
private Movement departure;
@OneToOne
private Movement arrival;
然而這,會造成問題。我不能在Movement
類的flight
字段映射在這兩個領域:
// This obviously does not work
@OneToOne(mappedBy = "departure")
@OneToOne(mappedBy = "arrival")
private Flight flight;
我怎麼會去正確標註這一點,同時具有departure
和arrival
場正確地引用Movement
,仍然能夠有flight
字段上Movement
類參考Flight
類?
爲什麼動作需要知道他們在什麼飛行? – corsiKa