Nhibernate / hibernate避免在连接表或视图中插入

时间:2011-04-04 06:54:47

标签: nhibernate join subclass

我必须加入一个实体,以便将一些数据检索到属性

<join table="XXVIEW" optional="true">
      <key column="ID_ENT" />
      <property name="Prop1" insert ="false" update ="false" />
      <property name="Prop2" insert ="false" update ="false" />
      <property name="Prop3" insert ="false" update ="false" />          
</join>

但是当我尝试保存(插入)时,它失败了因为它试图在带有ID_Ent的XXVIEW中插入记录

我需要在这个实体中有一些属性来自各种计算或连接,并且在对象属性(如组件)中具有非单个属性。

我可以跳过此插入???或者我可以用其他方式映射这些属性吗?

此属性位于已连接的子类中。 TIA ADB

2 个答案:

答案 0 :(得分:4)

您可以尝试将其标记为反http://nhibernate.info/doc/nh/en/index.html#mapping-declaration-join

,而不是将其标记为可选
  

反向(可选 - 默认为   false):如果启用,Hibernate将不会   尝试插入或更新属性   由此联接定义。

<join table="XXVIEW" inverse="true">

答案 1 :(得分:0)

您无法在视图上保存记录,在课堂上尝试添加mutable='false'

<class name="ActorView" mutable="false">
...

如果你想要保存,那么我怀疑你需要忘记视图并将其变成一个已定义集合的完全实体。