hibernate给表外键插入空值时报错。求解。详细如下:

异常:ORA-02291:违反完整约束条件(SY.FK_STUDENTS)-未找到父项关键字表中外键字段不是主键,可以为空值,sql语句插入空值没问题。但是用java的h... 异常:ORA-02291: 违反完整约束条件 (SY.FK_STUDENTS) - 未找到父项关键字
表中外键字段不是主键,可以为空值,sql语句插入空值没问题。但是用java的hibernate代码就报错。
表结构:
id 主键
name 普通字段
gid 外键,可以为空值
java代码如下:
Student s1=new Student();
s1.setName("张三");// id Hibernate自动生成,所以不设置,外键可以为空,所以也不设置
.....
session.save(s1);
tran.commit();
为什么会报上面那个异常?难道是hibernate不允许外键插入空值吗???求解!
映射文件:
<class name="students.Student" table="students">

<id name="id" type="java.lang.Integer" >
<column name="id"/>
<generator class="increment"/>
</id>
<property name="name" type="java.lang.String">
<column name="name"/>
</property>
<property name="gid" type="java.lang.Integer">
<column name="gid"/>
</property>

</class>
展开
 我来答
stefwujj
2013-09-02 · TA获得超过417个赞
知道小有建树答主
回答量:141
采纳率:100%
帮助的人:209万
展开全部
可以为空的,看下你的对象和映射文件。
更多追问追答
追问
映射文件补充道问题了
追答
你的gid是自己在数据库里面设置的外键么?你的Student里面的gid是设置的int还是Integer?
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式