确认

  • [X] 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
  • [X] 我已经在 issue 中搜索过, 确认问题没有被提出过
  • [X] 我已经修改标题, 将标题中的 描述 替换为遇到的问题

当前程序版本

3.5.7

问题描述

问题. queryWapper里.没有读取TableField的typeHandler去做条件转换.

实体类 Class MyObj{ @TableField(typeHandler = EnumOrdinalTypeHandler.class) private ResourceEnum resourceType; }

查询条件 QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(MyObj::getResourceType, ResourceEnum.cup); queryWrapper.last(" limit 1"); System.out.println(myobjMapper.selectList(queryWrapper));

不使用全局配置.

==> Preparing: SELECT id,resource_type FROM MyObj WHERE (resource_type = ?) limit 1 ==> Parameters: cup(String) <== Columns: resource_type <== Row: 0 <== Total: 1

使用全局配置 ==> Preparing: SELECT resource_type FROM MyObj WHERE (resource_type = ?) limit 1 Parameters: 2(Integer) Total: 1 所以我想问一下 对于项目里有人用Ordinal.有人用string的. 应该怎么办?

详细堆栈日志

No response

Comment From: miemieYaho

你看过文档里的通用枚举处理器吗? 你一个团队都不能统一枚举的吗?

Comment From: DanteCY

你看过文档里的通用枚举处理器吗? 你一个团队都不能统一枚举的吗?

看过.注册一个补充的,最后通过补充的设置么.. 不能呀.小公司,大家是不同的业务.谁也干涉不了谁呀.

Comment From: miemieYaho

一个项目里代码都不能统一,什么垃圾公司, 要么你.eq(MyObj::getResourceType, ResourceEnum.cup.value()) 要么参考文档设置默认枚举处理器自己去处理

Comment From: DanteCY

小公司么.那我再问一下 @TableField(typeHandler = EnumOrdinalTypeHandler.class) 这个typeHandler是不是只能处理从resultset转java对象的时候呀.别的时候.就只能自己去注册全局转换?

Comment From: miemieYaho

注解等于注入的crud的xml语法里手写进行指定typehandler