hibernate删除或者更新操作,主键映射问题,主键能找到两条相同记录。
例如 数据库一张表的为联合主键 如unique(ID,BM),但映射文件写成如下:
<id name="id" type="java.lang.Long">
<column name="ID" precision="20" scale="0" />
<generator class="assigned" />
</id>
<property name="bm" type="java.lang.String">
<column name="BM" length="20" />
</property>
这时候如果存在两条id相同的记录,那么在update和delete单条记录的时候就会出错,因为数据库可以查询到两条,将数据库映射文件改对即可:
<composite-id>
<key-property name="id" column="ID" type="java.lang.Long"/>
<key-property name="bm" column="BM" type="java.lang.String"/>
</composite-id>