0

问题是我希望有可能为不同的预订使用相同的 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

4

2 回答 2

0

我认为您正在@OneToMany@ManyToMany.

像这样阅读它:

One预订“拥有”Many降落伞

但是你想要这样的东西:

Many预订“分享”Many降落伞

希望能帮助到你。

于 2013-01-27T11:02:21.230 回答
0

在您描述的情况下,您不需要多对多连接表。

对于降落伞有不同的保留,我会这样做:

在 Resrvation.java

@ManyToOne
@JoinColumn(name = "parachuteID")
private Parachute parachute;

在降落伞.java

@OneToMany(mappedBy = "parachute")
private List<Reservation> reservations;

这样一个降落伞就会有一个预订清单。

于 2013-01-27T11:11:50.103 回答