7月22日志--hibernate插入数据问题

今天在写视频添加的时候,video表一个有五个字段,四个自己的,一个章节的外键,插入的时候只插入四个字段进去,打印输出测试是有外键的值,就是插的时候没有那个值。在网上查资料:、
有如下的一种的解决方法:

留意<set>元素中的inverse属性,该属性表示关联关系由主控(一方)还是受控方(多方)维护。所谓关联关系的维护就是受控方的外键插入由谁来控制。inverse默认为false,表示由主控方来控制。当主控方控制时,插入SQL的语句会分两条进行
insert into Items(itemName, itemPrice, orderId) values('aa', '5.95', NULL);
update Items set orderId = 3 where itemName = 'aa' and itemPrice = '5.95';
因为主控方控制关联关系,意味受控方在插入数据时,不会考虑其外键引用,直接插入为NULL,直到主控方执行更新操作。


因为HIbernate分两条SQL语句插入Score对象。
所以在SCORE表中,第一次外键为空。所以定义数据库中外键时默认值应为NULL.
第二次是更新该条记录的外键。
本人在创建SCORE表外键SID默认是不能为空。所以会出现此种情况,更改为NULL一切正常。

如下为HIbernate生成的SQL语句:
部分。

Hibernate:
insert
into
hbql.score
(score, type)
values
(?, ?)


Hibernate:
update
hbql.score
set
sid=?
where
id=?

后来我经过各种测试想知道到底是哪里的问题,结果还是不知道具体是哪里出的问题。。。哎。。悲催啊。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值