我在Person和他们的父母/子女之间有以下非常简单的多对一关系(也是Person的实例)。
Person.hbm.xml
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 04.05.2011 15:02:31 by Hibernate Tools 3.3.0.GA -->
<hibernate-mapping>
<class name="test.Person" table="PERSONS">
<id name="id" type="long" access="field">
<column name="PERSON_ID" />
<generator class="native" />
</id>
<bag name="children" table="PERSONS" lazy="false" inverse="true" cascade="all">
<key column="PERSON_ID" not-null="false"></key>
<one-to-many class="test.Person" />
</bag>
<many-to-one name="parent" column="PARENT_ID" not-null="false" />
</class>
</hibernate-mapping>
现在,我的问题是我有没有父母的人的实例(例如孤儿)。
如果我试图坚持这些物体,我会得到:
java.sql.SQLException:null,message 来自服务器:“专栏 'PARENT_ID'不能为空“
如果我在映射文件中设置not-null="true"
,我会得到:
org.hibernate.PropertyValueException: not-null属性引用null或 瞬态值:test.parent
这里的魔术是什么?
答案 0 :(得分:1)
Valmar,因为你得到一个SQL异常,可能你的COLUMN'PARENT_ID'有一个非空约束。检查你的桌子DDL。你在用什么数据库?