2012-03-12 2 views
1

nhibernate에서 -element를 사용하여 속성 그룹을 매핑 할 때 문제가 발생합니다.NHibernate <properties>

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

이 작품을 저장하지만 차량 속성을로드 할 때와는 null 보인다 매핑을 변경하고 작동하는 태그 지정을 피하면 올해 속성은 0

입니다. 불행하게도이 경우 고유 인덱스는 expeceted (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"/> 

누군가가 로딩이 작동하지 않는 이유는 어떤 생각을 가지고 있습니까? 또는 고유 인덱스를 만드는 것이 왜 두 번째 매핑에서 버그가있는 것인지 생각해보십시오.

답변

2

나는 당신과 똑같은 문제가 있었고 고유 키를 사용하는 예를 찾은 후에 해결책을 찾을 수있었습니다.

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> 

은 적어도 그 작동합니다.