Hibernate单向一对多关系导致重复
Hibernate unidirectional one to many relationship causing duplicates
你好程序员
我遇到了有关已完成保存的问题,并在日志中产生了以下错误:
> javax.faces.FacesException#{Form292VehicleComponent.saveForm292Vehicle(Form292VehicleComponent.form292Vehicle)}:
> org.springframework.dao.DataIntegrityViolationException: Duplicate
> entry '3a35781b-d2f6-46e7-a72b-605557b29cee' for key
> 'accessareaJustifications_ID'; SQL [n/a]; constraint [null]; nested
> exception is org.hibernate.exception.ConstraintViolationException:
> Duplicate entry '3a35781b-d2f6-46e7-a72b-605557b29cee' for key
> 'accessareaJustifications_ID'
我有两个实体:
- Form292车辆
- AccessAreaJustifications
两者的关系如下:
在 Form292Vehicle 实体中:
@DiffIgnore
@JsonIgnore
private List<AccessAreaJustification> accessareaJustifications;
在AccessAreaJustifications中,两个字段只用来保留一个Form292Vehicle的ID,没有任何关系。这意味着Form292Vehicle与List是单向的一对多关系。
当应用程序为 运行 时,将创建包含每个实体 ID 的联接 table
table将所有实体的Id保持为一种形式292Vehicle Id可以有多个accessJustifications Id。
当用户出现问题时:
更新申请表并保存。即制作了具有不同 ID 的重复应用程序并执行了保存。
我认为问题出在 Hibernate 映射上。我可以解决这个问题吗?
您的列表可能包含重复项。请改用 Set
或确保没有重复项
获得的错误解决方案既不对应List也不对应Set。这是两个事务试图为对象访问区域理由提交数据库中的相同条目。当一个事务在插入中锁定而另一个事务正在执行相同操作时,就会发生这种情况。所以当数据库提交事务时,发现重复条目。
你好程序员
我遇到了有关已完成保存的问题,并在日志中产生了以下错误:
> javax.faces.FacesException#{Form292VehicleComponent.saveForm292Vehicle(Form292VehicleComponent.form292Vehicle)}:
> org.springframework.dao.DataIntegrityViolationException: Duplicate
> entry '3a35781b-d2f6-46e7-a72b-605557b29cee' for key
> 'accessareaJustifications_ID'; SQL [n/a]; constraint [null]; nested
> exception is org.hibernate.exception.ConstraintViolationException:
> Duplicate entry '3a35781b-d2f6-46e7-a72b-605557b29cee' for key
> 'accessareaJustifications_ID'
我有两个实体:
- Form292车辆
- AccessAreaJustifications
两者的关系如下:
在 Form292Vehicle 实体中:
@DiffIgnore
@JsonIgnore
private List<AccessAreaJustification> accessareaJustifications;
在AccessAreaJustifications中,两个字段只用来保留一个Form292Vehicle的ID,没有任何关系。这意味着Form292Vehicle与List是单向的一对多关系。
当应用程序为 运行 时,将创建包含每个实体 ID 的联接 table
table将所有实体的Id保持为一种形式292Vehicle Id可以有多个accessJustifications Id。
当用户出现问题时: 更新申请表并保存。即制作了具有不同 ID 的重复应用程序并执行了保存。
我认为问题出在 Hibernate 映射上。我可以解决这个问题吗?
您的列表可能包含重复项。请改用 Set
或确保没有重复项
获得的错误解决方案既不对应List也不对应Set。这是两个事务试图为对象访问区域理由提交数据库中的相同条目。当一个事务在插入中锁定而另一个事务正在执行相同操作时,就会发生这种情况。所以当数据库提交事务时,发现重复条目。