Je suis nouveau à JPA et je me demandais si JPA contient une solution à mon problème. Els je vais juste besoin de créer une relation ManyToMany.JPA Beaucoup à deux relation
Mon application contient des routes et des caméras. Une route commence et se termine avec une caméra. J'ai créé ceci en créant une propriété cameraPointA
et cameraPointB
dans la classe RoadSegment
. Cela a créé une relation de plusieurs à deux. J'ai pensé que je pourrais définir cela comme deux à plusieurs relations, mais cela ne semble pas possible.
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;
//...
}
Que diriez-vous de deux champs, 'one mappedBy =" cameraPointA "', un 'mappedBy =" cameraPointB "', plus un getter qui combine ces deux champs? EDIT: Comme [ici] (http://stackoverflow.com/a/2181003/3890673) – crusy