2012-01-25 37 views
0

我有兩個類之間可選的多對一關係。通過將外鍵設置爲空,Hibernate將該屬性轉換爲可選屬性。休眠:可選與非空列多對一

我的db-schema不允許列爲空。該屬性是可選的,由這些列的默認值表示。

<class name="sth.Alpha" ...> 
    .... 
    <many-to-one name="beta" not-found="ignore" class="sth.Beta" insert="true" update="true"> 
     <column name="a1/> 
     <column name="a2/> 
    </many-to-one> 
</class> 

<class name="sth.Alpha" ...> 
    <composite-id> 
     <key-property name="b1" type="int"> 
      <column name="b1" precision="8" scale="0"/> 
     </key-property> 
     <key-property name="b2" type="int"> 
      <column name="b2" precision="8" scale="0"/> 
     </key-property> 
    </composite-id> 
</class> 

選擇數據是否定的,因爲在5月到一標籤將導致一個nullnot-found="ignore"問題 - beta -object。但是如果我想插入一個Alpha?與beta設置爲null。我收到一個例外情況,不可能將null插入到a1a2

如果我將insertupdate設置爲false,我就擺脫了這個問題。但是,如果它被設置,這會導致不保存關係。

數據庫,模式不能改變和Hibernate版本被固定爲3.5

我也很高興,如果你告訴我,這是不可能的

回答