数据库是oracle,使用mybatis-plus的insert方法插入数据时,空串如何自动变为空格?

Blade 未结 2 94
捷睿
捷睿 剑圣 2021-10-18 19:13
悬赏:50

一、该问题的重现步骤是什么?

 1、对象中有属性为空串,执行

xxxLogMapper.insert(xxxxLogDO);

2. 进而调用的是BaseMapper类中的int insert(T entity);方法,

3.因为表设置了字段非空,这样插入空串,就认为是null,导致提示错误。

image.png

4、错误日志:

org.springframework.dao.DataIntegrityViolationException: \n### Error updating database.  Cause: java.sql.SQLIntegrityConstraintViolationException: ORA-01400: 无法将 NULL 插入tablename.colId上。


二、你期待的结果是什么?实际看到的又是什么?


是否可以当空串时,自动变为空格。


三、你正在使用的是什么产品,什么版本?在什么操作系统上?

bladex2.5

四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

5.1、是否得通过mp的“自动填充”功能实现?

2条回答
  • 框架没做处理,你建表不是设置了默认值是空格字符串吗?打印下sql语句debug调试一下。

    0 讨论(0)
  • 2021-10-19 09:19

    我debug调试了,mybatis-plus没有相关参数处理。估计得使用元数据管理相关的处理了。

    0 讨论(0)
提交回复