【发布时间】:2010-01-20 11:40:04
【问题描述】:
我在以下代码中遇到了多对一映射问题:
...
<property name ="CustomerID"/>
<!-- Many-to-one mapping: Customer -->
<many-to-one name="Customer"
class="Customer"
column="CustomerID"
insert="false" update="false"/>
<property name="Date" />
...
您可能会注意到我已将两个 CustomerID 映射到 Customer 表。我这样做的原因是,当我想创建一个订单时,我只需将值分配给 CustomerID 和其他需要的字段,然后保存。多对一映射,我只想获取每个客户 ID 的详细信息。
但是,问题在于:在我更新 Order 的 customerID 并使用 Session.Flush() 执行 SaveOrUpdate 之后(我正在使用 HibernateTemplate),我在访问 Order.Customer 时仍然得到旧数字。 即:
订单 = getOderByID(1);
Order.CustomerID=3 // 假设 CustomerId 的值为 1,现在我改为 3
保存或更新(订单);
Print(Order.Customer.CustomerID)// 它返回 1,这是错误的。应该是 3
请帮忙...
谢谢,
【问题讨论】:
标签: nhibernate