如何使用具有复合ID的实体的Hibernate Mapping更新记录 我在nhibernate中有这个映射类。
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" schema="dbo" namespace="XXX.Core.Entities" assembly="FSI.Core.Entities">
<class name="RoleGroupLink" table="RoleGroupLink">
<composite-id>
<key-many-to-one name="RoleGroup" class="RoleGroup" column="RoleGroupID" />
<key-many-to-one name="Role" class="Role" column="RoleID" />
<key-property name="ObjectID" type="Int32" column="ObjectID" />
<key-property name="ObjectName" type="AnsiString" column="ObjectName" length="100" />
<key-property name="RoleID" type="AnsiString" column="RoleID" />
<!--type="Int32"-->
<key-property name="RoleGroupID" type="AnsiString" column="RoleGroupID" />
<!--type="Int32"-->
</composite-id>
</class>
</hibernate-mapping>
当我尝试使用此方法保存或更新实体时,它会出现如下错误, Nhibernate Exception。
在SET子句中多次指定列名“RoleID”。 在同一SET子句中不能为列分配多个值。 修改SET子句以确保列只更新一次。如果SET子句更新视图的列,则列名“RoleID”可能在视图定义中出现两次。 在SET子句中多次指定列名“RoleGroupID”。在同一SET子句中不能为列分配多个值。修改SET子句以确保列只更新一次。如果SET子句更新视图的列,则列名称“RoleGroupID”可能在视图定义中出现两次。
我也试过这些xml属性,但我的应用程序抱怨插入和更新是未知的任何想法?