自己遇到的Could not execute JDBC batch update的问题

本文记录了一次在更新部门信息时遇到的数据库异常问题及其解决过程。问题出现在尝试修改部门与分公司关联关系时,数据库抛出了数据完整性异常。通过检查配置文件,发现了一对多关系设置错误,并给出了具体的解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:
2010-06-25 11:48:54,832 ERROR (JDBCExceptionReporter.java:72) - Data truncation: Column set to default value; NULL supplied to NOT NULL column 'dept_id' at row 1
2010-06-25 11:48:54,846 ERROR (AbstractFlushingEventListener.java:300) - Could not synchronize database state with session
org.springframework.dao.DataIntegrityViolationException: [b]Could not execute JDBC batch update[/b]; nested exception is org.hibernate.exception.DataException: Could not execute JDBC batch update

情况:
当时我只是想更新部门(dept)信息,而其跟员工(employee)有一对多的关系。跟分公司(branch)有对应关系,但是没有实体的关系。在我对部门修改分公司名称的时候报了以上的错误。

解决方式:
这种问题别人也有说到有几种解决方式
1.自动生成的*.hbm.xml文件中Class中自带的catlog属性要去掉。
2.*.hbm.xml文件中不能出现关键字,如ID,date。
3.在我这里:
Dept.hbm.xml文件有一处
<set name="employees">
<key >
<column name="DEPT_ID" length="50" />
</key>
<one-to-many class="com.vo.[i][b]Employee[/b][/i]" />
</set>
加粗的地方在配置多方的时候配错了。开始配成了Dept。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值