2011-05-11 66 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