【发布时间】:2009-10-09 16:37:57
【问题描述】:
customer = // get customer from the current hibernate session
// customer has a discount with database id of 1
到这里为止一切都很好。但如果我打电话:
discount = SpecialDiscount.create("10%");
customer.setDiscountTo(discount);
session.save(customer);
// customer has a discount with database id of 2 now
即使我已将其设置为另一个折扣值对象,休眠如何更新 id 为 2 的同一折扣行?另外,我想通过分离前一个左右来防止“具有相同身份的对象已经存在”错误。你有什么建议?
// An entity
class Customer {
// one-to-one mapped immutable value object
SpecialDiscount discount;
SpecialDiscount discount() {
return SpecialDiscount.create(this.discount);
}
void setDiscountTo(SpecialDiscount discount) {
this.discount = SpecialDiscount.create(discount);
}
}
【问题讨论】:
-
什么时候出现“已经存在具有相同标识的对象”错误?
标签: hibernate object mapping domain-driven-design