使用Oracle数据库踩坑记录

一、执行查询语句报错

org.hibernate.PropertyAccessException: Null value was assigned to a property of primitive type setter of com.tc.model.BuyDetail.backMoney

数据库里backMoney字段值为NULL,进行对象持久化关联时,企图给对象的这个属性赋值为空,而对象实例的这个属性不能为空值,所以出现错误。【backMoney是double型,不能为空】 解决方法:将该字段在类中的类型定义为Double。

二、执行sql插入语句报错Error during managed flush [could not execute batch]

[TRACE][2019-10-24 16:27:56,880][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [1] as [DOUBLE] - [0.0]
[TRACE][2019-10-24 16:27:56,880][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [2] as [VARCHAR] - [430102199003073352]
[TRACE][2019-10-24 16:27:56,880][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [3] as [BIGINT] - [1571905637993]
[TRACE][2019-10-24 16:27:56,880][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [4] as [INTEGER] - [0]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [5] as [INTEGER] - [1]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [6] as [VARCHAR] - [13100000001(13100000001)]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [7] as [BIGINT] - [1571192139563241]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [8] as [VARCHAR] - [15812345678]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [9] as [DOUBLE] - [0.0]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [10] as [VARCHAR] - [test]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [11] as [DOUBLE] - [0.0]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [12] as [DOUBLE] - [0.0]
[TRACE][2019-10-24 16:27:56,881][org.hibernate.type.descriptor.sql.BasicBinder]binding parameter [13] as [BIGINT] - [1571905637993907]
[INFO][2019-10-24 16:27:56,887][org.hibernate.engine.jdbc.batch.internal.AbstractBatchImpl]HHH000010: On release of batch it still contained JDBC statements
[WARN][2019-10-24 16:27:56,887][org.hibernate.engine.jdbc.spi.SqlExceptionHelper]SQL Error: 12899, SQLState: 72000
[ERROR][2019-10-24 16:27:56,887][org.hibernate.engine.jdbc.spi.SqlExceptionHelper]ORA-12899: 鍒� "WF_CSP"."HT_TENANT"."OPT_NAME" 鐨勫�煎お澶� (瀹為檯鍊�: 24, 鏈�澶у��: 20)

[WARN][2019-10-24 16:27:56,887][org.hibernate.engine.jdbc.spi.SqlExceptionHelper]SQL Error: 12899, SQLState: 72000
[ERROR][2019-10-24 16:27:56,887][org.hibernate.engine.jdbc.spi.SqlExceptionHelper]ORA-12899: 鍒� "WF_CSP"."HT_TENANT"."OPT_NAME" 鐨勫�煎お澶� (瀹為檯鍊�: 24, 鏈�澶у��: 20)

[ERROR][2019-10-24 16:27:56,887][org.hibernate.engine.jdbc.batch.internal.BatchingBatch]HHH000315: Exception executing batch [could not execute batch]
[ERROR][2019-10-24 16:27:56,898][org.hibernate.internal.SessionImpl]HHH000346: Error during managed flush [could not execute batch]

将sql语句放到数据库连接工具执行后发现,有一个字段超出长度了。

三、执行插入语句报错

org.springframework.dao.DataIntegrityViolationException: could not execute batch; SQL [/* insert com.tc.model.FilesPrice */ insert into PE_FILES_PRICE (ADD_PRICE1, ADD_PRICE2, AVG_PRICE, CREATE_TIME, IS_ENABLE, OPERATOR_NAME, PE_ID, PRICE, PRICE_NAME, PRICE_SORT, PRICE_TYPE, REMARK, STEP_TYPE, PRICE_ID) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)]; constraint [null]; nested exception is org.hibernate.exception.ConstraintViolationException: could not execute batch

原因:有字段为空,而对应数据表中该字段不能为空。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

oyezitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值