New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
mybatis plus TableField typehandler 问题 #357
Comments
# 补充一下 |
查询的 sql 你打印下看看,我们 源码测试用例里面有一个 typeHandler 的例子你可以参考下 |
遇到同样的问题,打印的SQL没有问题,我认为是MybatisPlus的BUG |
在@TableField中指定typeHandler,所有的BaseMapper的查询相关方法都不会生效.但又无法在BaseMapper指定ResultMap.求帮助. |
遇到同样的问题,插入更新没问题,查询的时候使用了默认的handler |
写 resultMap,TableName注解指定该 resultMap |
@spencexu 那最后你怎么解决这个问题,能否指点一下,谢谢 |
@ynfatal TableField和resultMap都配置了typeHandler,一个处理查询一个处理更新,测试了一下,确实是可以的 |
这个问题,还没有修复,最新版 3.1.2 |
see 在配置文件中添加配置 |
@TableName(value = "project",autoResultMap = true) typeHandlersPackage倒是无所谓加不加 |
@miemieYaho 如果是自定义SQL的话,这个问题仍然存在,加上@TableName(autoResultMap = true)也没用,只能自己加ResultMap |
本来就这样的 |
@miemieYaho OK,知道不能那么用就放心了,但不是很理解为什么不能…… |
因为芯是mybatis |
在MyBatis DefaultSetResult 这个处理类的typehandler管理中,没有发现@TableField中的typehandler被注入。因此我选择手动遍历MP的@TableField注解,并且自行注入 这里说明一下
|
感谢,通过修改这个配置文件确实可以 |
按理配置 |
如何在MybatisSqlSessionFactoryBean配置中直接注入typeHandlersPackage? |
请问这个方法什么时候执行呢,没有找到 |
能不能问一下,这个baseTypeHandler,我在使用mybatisPlus的Example的时候不生效,这个有人遇到过咋解决的吗? |
目前框架层面貌似没解决,我这里的解决方案是继承LambdaQueryWrapper然后重写自己需要的查询比如eq,in,like,然后针对要处理的字段进行处理,处理之后作为入参执行sql |
新版本中,支持typeHandler属性的如: @TableField(typeHandler = MyArrayTypeHandler.class),可按官方文档配置即可 |
感谢,通过增加这个注解确实可以 |
# 问题描述:
查询的时候,如果用mybatis mapper 配置返回的查询,typehandler会起作用,但是用ServiceImpl(mybatis plus 的类)的selecrtById(其实任何查询方法都可以),那么TableField 配置的TypeHandler就不起作用,看如下代码。
# 代码:
JAVA代码判断
@TableField(el = "images, typeHandler=com.zyzc.xyzy.config.db.JsonTypeHandler")
private List images;
Mybatis XML代码片段
# 原因分析
我跟踪代码的时候发现了这一点。就是在在用ServiceImpl的selectById的时候。
执行到mybatis的DefaultResultSetHandler的 typeHandlerRegistry.hasTypeHandler(propertyType, rsw.getJdbcType(columnName)) 这个方法的时候,返回的是false。这个方法里面又去比较的是 TypeHandlerRegistry的 TYPE_HANDLER_MAP 这个集合比较的。而且是用的java.util.list这个类去找的。确实没找到。。但是为什么 mybatis 那种可以。。因为时间关系,我就没往下看了。。
# 结论
我认为我这个问题可能要么就是我配置错了(TableFiled上面),要么就是MybatisPlus的一个BUG。
The text was updated successfully, but these errors were encountered: