mybatis 字段默认值是空串,对应字段为枚举类ValidStatus, 查询时报 No enum constant com...ValidStatus.
请问, 能忽略掉空串, 直接将ValidStatus字段值转为null吗?
mybatis 字段默认值是空串,对应字段为枚举类ValidStatus, 查询时报 No enum constant com...ValidStatus.
请问, 能忽略掉空串, 直接将ValidStatus字段值转为null吗?
5 回答1.5k 阅读
2 回答2.2k 阅读
3 回答762 阅读✓ 已解决
1 回答1k 阅读
1 回答694 阅读✓ 已解决
1 回答994 阅读
1 回答866 阅读
mybatis默认的枚举类型处理器
EnumTypeHandler
mybatis的默认枚举类型处理器,将枚举类型的name持久化到数据库;
EnumOrdinalTypeHandler
mybatis原生支持的另一种枚举类型处理器,将枚举类型的索引序号持久化到数据库,需要全局配置或者在需要的字段上单独配置;
mybatis在3.4.5及之后版本中,新增了一个指定全局默认枚举类型处理器的配置项;
在mybatis-config.xml中添加如下配置即可使自定义处理器全局生效,解决了之前新增枚举都需要单独配置的烦恼;
默认枚举处理器的处理方式:
org.apache.ibatis.type.EnumTypeHandler#getNullableResult(java.sql.ResultSet, java.lang.String):
上边, s 为 null 时, 就会调用 Enum.valueOf() 方法, 将 s 转化为相应的枚举值。 可是 ,数据库中定义字符串字段时,通常不会将默认值设置为 null, 而是会设置为空串,这样, 空串不能转化为枚举值, 就会报
的异常。