我有一个实体卖方。 我与另一个实体(假设相似的卖方)有关系。 在
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<>();
帮助我解决此问题。