首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NHibernate <properties>

NHibernate <properties>
EN

Stack Overflow用户
提问于 2012-03-12 18:51:36
回答 1查看 351关注 0票数 1

在nhibernate中使用-element映射一组属性时,我遇到了一些问题。

代码语言:javascript
复制
<class name="PlannedSalesInYear"
     table="tblPlannedSalesInYear"
     lazy="false" >
   <id name="_businessId"
    column="BusinessId"
    access="field">
       <generator class="assigned" />
   </id>

<properties name="UIDX_PSPerVehicleAndYear"      
             optimistic-lock="true"
            insert="true"
            update="true"
            unique="true">
  <property name="_year"
            access="field"
            column="Year"/>
  <many-to-one name="_vehicle"
               access="field"
               fetch="select"
               column="VehicleId"
               foreign-key="FK_VehicleOfPlannedSalesInYear"/>      
</properties>

<property name="_plannedSales"
          not-null="false"
          access="field"
          column="PlannedSales"/>

这看起来像是保存工作,但是当加载vehicle属性为null,且year属性为0时。

当更改映射并避免-Tag时,它可以工作。不幸的是,在这种情况下,唯一索引不能像预期的那样工作(Sqlite)。

已更改映射:

代码语言:javascript
复制
<class name="PlannedSalesInYear"
     table="tblPlannedSalesInYear"
     lazy="false" >
   <id name="_businessId"
    column="BusinessId"
    access="field">
     <generator class="assigned" />
   </id>

<property name="_plannedSales"
          not-null="false"
          access="field"
          column="PlannedSales"
          />

<property name="_year"
          access="field"
          unique-key="UIDX_PSPerVehicleAndYear"
          column="Year"/>
<many-to-one name="_vehicle"
             access="field"
             fetch="select"
             column="VehicleId"
             unique-key="UIDX_PSPerVehicleAndYear"
             foreign-key="FK_VehicleOfPlannedSalesInYear"/>

有人知道为什么加载不起作用吗?或者想知道为什么在第二个映射中创建唯一索引是错误的?

EN

回答 1

Stack Overflow用户

发布于 2012-08-02 22:49:10

我遇到了和你一样的问题,当我发现你使用唯一键的例子后,我找到了一个解决方案。

当您在hbm文件中定义属性时,还要添加列的定义。

代码语言:javascript
复制
<property name="Year">
  <column name=Year sql-type="int" not-null="true" unique-key="UC_MY" />
</property>
<property name="Month">
  <column name=Month sql-type="tinyint" not-null="true" unique-key="UC_MY" />
</property>

至少当你有两个简单的属性时,这是有效的,但我想值得一试,看看它是否也适用于多对一属性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9665727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档