3.4版本里动态表名里的ITableNameHandler过期了,换成了TableNameHandler,但是却没有MetaObject了,请问要怎么获取MetaObject的数据?
你可以把整个插件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的这个方案真的好好又轻又快
赞同!
Most helpful comment
我觉得MetaObject不应该去掉,我现在也是用MetaObject来获取查询参数动态修改表名,没使用threadLocal,mp的这个方案很轻,用mybatis插件就好了以前用mycat分表太重了,现在没有metaObject,只能解析sql获取参数再来动态表名,这样的话还不如sharding jdbc,但mp的这个方案真的好好又轻又快