1

有两个类 A 和 B 以及 hibernate 映射

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

在数据库中,表 B 的 A_FK 列上存在非空约束和外键约束。当我尝试插入包含 BI 的 A 时,出现以下错误:

ORA-01400: 无法将 NULL 插入 ("SCHEMA"."B"."A_FK")

是否可以插入此类数据而无需指定 inverse=true 标志?和反比关系?

4

2 回答 2

0

并非没有摆脱 id 的生成方式。你可以切换ID的生成方式吗?

于 2011-05-11T07:36:24.620 回答
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>
于 2011-05-11T07:42:40.503 回答