日期:2014-05-16  浏览次数:20480 次

关于hibernate 错误 Could not execute JDBC batch update
@author 阙超强
@time 2012-02-03 11:48:05
此文档主要介绍我在本周工作中遇到的2个问题以及解决方法。
一. 关于hibernate 错误 Could not execute JDBC batch update。
在本周星期二我做某个对数据库表修改的功能时,老是出现上面的错误。很费解。
我在网上找了很多资料都不的解,最后总结出代码一定是没错的。
于是去数据库查找原因,结果发现我操作的那个表中,有一个列名为数据库的关键字。
问题就出现在这里,由于表不为我所建立,找此问题找了好久。
下面为我找到资料,出现此问题的原因不外乎于此:
1. 重点注意主键的映射关系是否配置正确
2. 是由更新数据库表时,插入的数据与字段不匹配引起的。比如字段A已设为只允许有0和1值,但你却插入了一个空值或其它值,则就会报这个错误。
3. 数据库表的列名是否为关键字。
4. 不能批量更新,这个错误是因为一次性更新多条数据。
5. 另外,造成这个原因的还可能是数据库的驱动jar包不支持。

二. 关于float转为int类型的问题。
此问题看上去似乎很简单,直接通过强制转换就可以了。
但不如此,我需要转的float(浮点型)是通过对象的get方法获得的。
(int)float;此方法就无放使用。
通过各种API方法的测试,都不成功。
最后查到一个好的方法了:
用Math四舍五入转成int就行了,而且我需要转的float类型都是XXX.0模式的。
PS: Math.round(setMeal.getPayprice())