NHibernate <properties> - PullRequest
       6

NHibernate <properties>

1 голос
/ 12 марта 2012

У меня возникают проблемы при отображении группы свойств с -element в nhibernate.

<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"/>

Кажется, что сохранение работает, но при загрузке свойство транспортного средства равно нулю, а свойство года равно 0.

При изменении сопоставления и избегать -Tag он работает. К сожалению, в этом случае уникальный индекс не работает как исключение (Sqlite).

Изменено отображение:

<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"/>

У кого-нибудь есть идеи, почему загрузка не работает? Или идея, почему создание уникального индекса глючит со вторым отображением?

1 Ответ

2 голосов
/ 02 августа 2012

У меня была та же проблема, что и у вас, и после того, как я нашел ваш пример использования уникального ключа, я смог найти решение.

Когда вы определяете свои свойства в файле hbm, добавьте также определение столбцов.

<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>

По крайней мере, это работает, когда у вас есть два простых свойства, но я думаю, стоит попробовать проверить, работает ли оно также со свойствами многие-к-одному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...