我有这个实体:
@Entity
@Table(name="AA_CHARGE")
public class Charge2 extends AbstractProduct implements Serializable {
private static final long serialVersionUID = 1L;
private String currency;
private String chargeType;
@OneToMany(mappedBy = "charge")
private Set<Rate2> chargeRates;
...
}
public class Rate2 implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="RATE_ID")
private String id;
private Date startDate;
private Date endDate;
private BigDecimal rate;
private String templateType;
@ManyToOne(cascade=CascadeType.ALL)
@JoinColumn(name="CHARGE_ID")
private Charge2 charge;
...
}
我有一个指定的Charge 对象,其中只有一个ChargeRates 集合上的元素(例如,带有 id A),它保存在数据库中。
在这种情况下,我读取了另一个对象并获得了相同的费用,但chargeRates 集合不等于。(例如,有一个 ID 为 B 的费率)。
hibernate 是否应该更新我的 Charge 并将 2 个元素放入 ChargeRates 中?在此之后,如果我对数据库进行查询,则会收到错误消息“具有相同标识符值的不同对象已与会话相关联”
Charge id 是一样的,为什么hibernate会针对这种情况报这个错误呢?谢谢