错误:具有相同标识符值的其他对象已关联

时间:2019-12-16 09:02:42

标签: hibernate spring-data-jpa

我有一个实体卖方。 我与另一个实体(假设相似的卖方)有关系。 在

public class SimilarSellers implements Auditable {

@EmbeddedId
private SimilarSellersID ID;

@Embedded
private AuditSection auditSection = new AuditSection();

@Column(name = "DeliveryEnquiry")
private Boolean deliveryEnquiry;

@Column(name = "ProductEnquiry")
private Boolean productEnquiry;

以上内容具有以下组成键:

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "SellerId")
private Seller seller;

@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "RefererSellerId")
private Seller refererSeller;

@Column(name = "type", nullable = false)
private String type;

所以现在我的要求是在更新卖方实体时,假设我删除了几个SellerReferer并尝试使用数据更新卖方。

我正在做的是通过清除收藏集来删除现有数据并重新插入类似卖家。

设置后,我尝试调用保存方法。

此时,我收到以下异常;

  

具有相同标识符值的另一个对象已与会话相关联:[com.domain.SimilarSellers#com.sawce.domain.SimilarSellersID@7290735];嵌套异常是javax.persistence.EntityExistsException:具有相同标识符值的另一个对象已与会话相关联:[com.domain.SimilarSellers#com.sawce.domain.SimilarSellersID@7290735]

我在Hibernate实体中有关系配置,如下所示;

@OneToMany(targetEntity = SimilarSellers.class,mappedBy="ID.seller",cascade = CascadeType.ALL, fetch = FetchType.LAZY)
private List<SimilarSellers> referes = new ArrayList<>();

帮助我解决此问题。

0 个答案:

没有答案