与数据库约束的一对多关系和逆=真



有两个类A和B以及休眠映射

<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上有一个非空约束和一个外键约束。当我尝试插入包含 B 的 A 时,出现以下错误:

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

是否可以插入此类数据而不必指定 inverse=true 标志? 和逆关系?

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

将问题转换为问题只是答案的一半......

缺少的是套装键上的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>

相关内容

  • 没有找到相关文章

最新更新