[英]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.