org.springframework.orm.jpa.JpaSystemException: More than one row with the given identifier was found: 42, for class
这个问题说是NHibernate 有AB两个表 A和B一对一,B和A多对一,在没有数据情况下没问题,在有数据是就出现异常more than one row with the given identifier was found。网上好多的都是建议把数据重新清除然后就可以了。
但是我的代码并不是这样的。我的是这样解决的
由于我的业务是向中间表添加数据。由于中间表是联合主键,可能多次添加就会报上面的异常。
我的实体中是这样的添加了重复的主键报错了
@Entity
@Table(name = "usr_firm_role")
public class UsrFirmRole implements Serializable {
@Id
@Column(name = "role_id")
private Integer roleId;
@Column(name = "firm_id")
private Integer firmId;
改成这样就可以了
@Entity
@Table(name = "usr_firm_role")
@IdClass(UsrFirmRolePk.class)
public class UsrFirmRole implements Serializable {
@Id
@Column(name = "role_id")
private Integer roleId;
@Id
@Column(name = "firm_id")
private Integer firmId;
@Data
public class UsrFirmRolePk implements Serializable {
private Integer roleId;
private Integer firmId;
}