我们有一个基于 Hibernate (33.) 的 Web 应用程序,并且正在发现与交换受唯一索引限制的数据值对相关的问题。在我们的 HBM 机票中,我们有
<many-to-one name="participants" class="net.umbrella.entity.ParticipantModel" fetch="select">
<column name="PARTICIPANTID" not-null="false" />
</many-to-one>
<many-to-one name="flights" class="net.umbrella.entity.FlightModel" fetch="select">
<column name="FLIGHTID" not-null="true" />
</many-to-one>
在功能上可以使用分配给参与者 P1 的票 A 加上分配给参与者 P2 的票 B 的数据对并交换两个参与者。票 A 最终将分配给参与者 P2,票 B 将分配给参与者 P1。但是,FLIGHTID + PARTICIPANTID 有一个唯一的约束。
当 Hibernate 发布第一个更新以将票证 A 上的参与者 P1 更改为 P2 时,抛出 GenericJDBCException
Attempt to insert duplicate key row in object 'FLIGHTTICKET' with unique index 'IDX_FLIGHTTICKET_UQ'
有没有人对此有共同的解决方案?
谢谢西蒙