一、执行查询语句报错
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
原因:有字段为空,而对应数据表中该字段不能为空。