问题描述
- spring boot整合mybatis
- 用实体类对象接收查询结果
- Oracle数据库
查询结果实体类对象是null,后续调用报空指针。
原因分析
字段类型
使用包装类型,不使用基本类型。
附:不加@Id的普通字段(但该字段是数据库的主键)依然可以查询。
代码逻辑
一个事务中代码逻辑的先后顺序。
比如,先对某一条记录进行删除,再用selectByPrimaryKey查询这条记录进行后续操作,此时查询结果为null。
但奇怪的是在执行到删除语句时,数据库中这条记录依然存在,却使查询结果为null。
这个问题的原因应该是:走到删除语句,其实已经删了,只是事务没完,没有commit,从而导致使用工具查询数据库该记录依然存在但查询不到。