版本3.1.2 我想通过对象的某个属性动态修改表名,但是无法获取这个对象。请问如何获取呢?
Comment From: qmdx
可以的 debug 看下就知道了参考 set 逻辑
Comment From: liushengbao
我刚好有用到,发你看看
BoundSql boundSql = (BoundSql) metaObject.getValue("delegate.boundSql");
MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
org.apache.ibatis.session.Configuration configuration = mappedStatement.getConfiguration();
for (ParameterMapping pm : boundSql.getParameterMappings()) {//依次获得?注入参数
MetaObject mo = configuration.newMetaObject(boundSql.getParameterObject());
Object value = mo.getValue(pm.getProperty());//这个就是SQL注入的参数
System.out.println(value);
}
Comment From: ahTy
在最新版3.4.1中这个问题怎么解决呢?现在metaObject也无法获取了,因为 ITableNameHandler 过期了现在的TableNameHandler只能获取到不带参数的sql,无法获取到其他信息