我的实体类
问题
我的实体类中定义了一个枚举类型的字段,发现插入数据和查询数据时,都会忽略该字段;
插入时的实体传参有值,数据库中为null;
手动在数据库设置值,然后查询出来的数据该字段也为null;
排查
关于这块的资料都比较少,所以只好自己来debug源码找问题了;
为什么这个字段会被参数处理器与结果处理器都忽略掉呢?
源码:
tk.mybatis.mapper.mapperhelper.EntityHelper#initEntityNameMap
tk.mybatis.mapper.mapperhelper.resolve.DefaultEntityResolve#resolveEntity
如果启用了简单类型,就做简单类型校验,如果不是简单类型,直接跳过:
config.isUseSimpleType() 对应的字段:
解决
所以,我尝试在实体类加上了 @Column 后,问题解决了
数据库终于有值了:
只不过我这里是用的缺省处理器 EnumTypeHandler,所以存的是枚举类的name;
如需要存序号,可以使用自定义映射器;