2012-01-25 14 views
0

私は2つのクラスの間にオプションの多対1の関係を持っています。 Hibernateは、外部キーをnullに設定することによって、プロパティをオプションに変換します。Hibernate:nullでない列を持つオプションの多対1

私のdb-schemaでは、列をnullにすることはできません。オプションのプロパティは、これらの列のデフォルト値で表されます。 beta -object -

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

選択データがあるため、それはnullをもたらす月対1タグにおけるnot-found="ignore"の問題ではありません。しかし、Alphaを挿入したいのですが? betanullに設定されています。私は、nulla1a2に挿入することはできないという例外があります。

insertupdateをfalseに設定すると、この問題が解消されます。しかし、これが設定されていると、関係が保存されません。

データベース・スキーマは、あなたが私に言うならば、私もそれが<id unsavedvalue="whatever">と一緒に

答えて

3

how to use 0 instead of null不可能であることを、幸せになる変更することはできませんし、休止状態、バージョンは3.5

に固定されて

を助けるかもしれません

または

other solution

+0

こんにちは、あなたの答えのためのおかげで、有望な音。しかし、リンクしているページは、少なくとも数日はダウンしています。しかし、私はunsavedvalueプロパティを試してみる – thomas

関連する問題