有两个类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>