Mybatis-plus: 动态表名里的TableNameHandler里没有MetaObject了?

Created on 2 Sep 2020  ·  10Comments  ·  Source: baomidou/mybatis-plus

当前使用版本3.4

3.4版本里动态表名里的ITableNameHandler过期了,换成了TableNameHandler,但是却没有MetaObject了,请问要怎么获取MetaObject的数据?

enhancement todo

Most helpful comment

我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快

All 10 comments

你可以把整个插件cv一下改改来用

你需要 MetaObject 做什么?

@qmdx 用MetaObject来获取传过来的动态表名

我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快

我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快

感觉用MetaObject获取参数好难,我用的ThreadLocal。 有什么好的方法通过MetaObject获取参数吗?不同的调用方式获取参数方法不同。

我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快

赞同

现在有办法获取参数吗?我怎么有点不知所措,我该怎么获取参数中的表名呢

你可以把整个插件cv一下改改来用

请问如何操作呀,我没太明白

你可以把整个插件cv一下改改来用

请问如何操作呀,我没太明白

DynamicTableNameInnerInterceptor重写下这个拦截器,把属性 tableNameHandlerMap 的value换成 beforeQuery 这个方法的形参上的 parameter

我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快

赞同!

Was this page helpful?
0 / 5 - 0 ratings