当前使用版本3.4
3.4版本里动态表名里的ITableNameHandler过期了,换成了TableNameHandler,但是却没有MetaObject了,请问要怎么获取MetaObject的数据?
Comment From: miemieYaho
你可以把整个插件cv一下改改来用
Comment From: qmdx
你需要 MetaObject 做什么?
Comment From: eschervr-dev
@qmdx 用MetaObject来获取传过来的动态表名
Comment From: coffee-developer
我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快
Comment From: hutaishi
我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快
感觉用MetaObject获取参数好难,我用的ThreadLocal。 有什么好的方法通过MetaObject获取参数吗?不同的调用方式获取参数方法不同。
Comment From: lunxian8
我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快
赞同
Comment From: ahTy
现在有办法获取参数吗?我怎么有点不知所措,我该怎么获取参数中的表名呢
Comment From: ahTy
你可以把整个插件cv一下改改来用
请问如何操作呀,我没太明白
Comment From: ppx-build-code
你可以把整个插件cv一下改改来用
请问如何操作呀,我没太明白
DynamicTableNameInnerInterceptor重写下这个拦截器,把属性 tableNameHandlerMap 的value换成 beforeQuery 这个方法的形参上的 parameter
Comment From: m3yang
我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快
赞同!
Comment From: qmdx
ThreadLocal 参考 https://github.com/baomidou/mybatis-plus/issues/3186