2011-05-11 53 views
1

有兩個類A和B以及休眠映射一個一對多relationshipt與數據庫約束和逆=真正

<hibernate-mapping default-lazy="false"> 
     <class name="A" table="A"> 
      <id name="id" type="long"> 
       <generator class="sequence"><param name="sequence">A_SEQUENCE</param></generator></id> 
    <set name="a" cascade="all" inverse="false" > 
      <key><column name="A_FK" not-null="true" /></key> 
      <one-to-many class="B" /></set> 
    </class> 
</hibernate-mapping> 

<hibernate-mapping default-lazy="false"> 
    <class name="B" table="B"> 
     <id name="id" type="long"> <column name="ID"/> 
      <generator class="sequence"><param name="sequence">B_SEQUENCE</param></generator></id> 
     </class> 
</hibernate-mapping> 

在數據庫中有一個不爲空contraint和柱外鍵約束

ORA-01400:表B. 當我嘗試插入包含BI收到以下錯誤的A的A_FK不能將NULL插入( 「綱目」 「B」 「A_FK」)

是否可以插入這種數據而不必指定inverse =真旗幟?和相反的關係?

回答

0

轉換的問題,一個問題是一半的答案...

什麼缺少的是對一系列關鍵的not-null="true"

<set name="a" cascade="all" inverse="false" > 
     <key not-null="true"><column name="A_FK" not-null="true" /></key> 
     <one-to-many class="B" /> 
</set> 
0

不是沒有擺脫id生成的方式。你可以切換Id的生成方式嗎?

+0

A的ID或B的ID? – bertolami 2011-05-11 07:37:35