问题是我想有可能为不同的预订使用相同的parachute_id,但是当我保存具有相同parachute_id的预订时,我得到:
org.hibernate.exception.ConstraintViolationException: Duplicate entry '78' for key 'parachute_id'
这是我的代码:
@OneToMany
@JoinTable(name="reservation_parachute")
Collection<Parachute> parachute = new ArrayList<Parachute>();
和数据库示例:
Reservation_id parachute_id
130 76
129 75
127 51
127 63
126 10
126 2
126 1
131 77
133 78
答案 0 :(得分:0)
我认为您正在将@OneToMany
与@ManyToMany
混合。
这样读:
One
预订'拥有'Many
降落伞
但是你需要这样的东西:
Many
预订'分享'Many
降落伞
希望它有所帮助。
答案 1 :(得分:0)
在您描述的情况下,您不需要多对多连接表。
对于降落伞有不同的保留,我会这样做:
Resrvation.java中的
@ManyToOne
@JoinColumn(name = "parachuteID")
private Parachute parachute;
Parachute.java中的
@OneToMany(mappedBy = "parachute")
private List<Reservation> reservations;
这样,降落伞就会有一份预订清单。