[英]JPA Many to Two relationship
我是JPA的新手,想知道JPA是否包含針對我的問題的解決方案。 Els我將只需要創建一個ManyToMany關系。
我的應用程序包含道路和照相機。 道路始於攝像機,始於攝像機。 我是通過在RoadSegment
類中創建屬性cameraPointA
和cameraPointB
來創建的。 這創造了多對二的關系。 我以為可以將其定義為兩個多對一的關系,但這似乎是不可能的。
CameraPoint.java
@Entity
public class CameraPoint implements Serializable {
@Id @GeneratedValue
private long id;
@OneToMany (mappedBy = "cameraPointA or cameraPointA") //<== The Problem
private List<RoadSegment> roads;
//...
}
RoadSegment.java
@Entity
public class RoadSegment implements Serializable {
@Id @GeneratedValue
private long id;
@ManyToOne(cascade = CascadeType.ALL)
private Region region;
@ManyToOne(optional=false)
private CameraPoint cameraPointA;
@ManyToOne(optional=false)
private CameraPoint cameraPointB;
//...
}
我不知道這是否會工作,但也許你可以嘗試添加到CameraPoint
的另一個列表RoadSegments
,這表明該相機具有道路的一個列表,其中相機的開始和其他列表顯示的相機是最后一個。
@Entity
public class CameraPoint implements Serializable {
@Id @GeneratedValue
private long id;
@OneToMany (mappedBy = "cameraPointA")
private List<RoadSegment> roadsA;
@OneToMany (mappedBy = "cameraPointB")
private List<RoadSegment> roadsB;
//...
}
使用雙向關系真的必要嗎? 也許不是,您的模型會更容易。
例如,如果你總是達不到的CameraPoint
從RoadSegment
那么你不需要@OneToMany
的關系CameraPoint
。
這同樣適用於反向模式下,如果你總是得到RoadSegment
從以前的CameraPoint
,那么@ManyToOne
關系是沒有必要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.