67,513
社区成员
发帖
与我相关
我的任务
分享
public static String composeFullyQualifiedTableName(String catalog,
String schema, String tableName, char separator) {
StringBuilder sb = new StringBuilder();
if (stringHasValue(catalog)) {
sb.append(catalog);
sb.append(separator);
}
if (stringHasValue(schema)) {
sb.append(schema);
sb.append(separator);
} else {
if (sb.length() > 0) {
sb.append(separator);
}
}
sb.append(tableName);
return sb.toString();
}
你用的是mysql吧,mysql不支持schemas,也不支持catalog..tablename 这样的形式。so,要么改源代码,要么不用catalog。
改源代码可以用hot patch方式,用javassist,在generator执行前修改类方法,看起来比较简单些。
类似:
CtClass ctClass = classPool.get("org.mybatis.generator.internal.util.StringUtility");
try {
CtMethod m = ctClass.getDeclaredMethod("composeFullyQualifiedTableName");
m.setBody("{return xxxx(修改代码);}");
ctClass.toClass();
} catch (Exception e) {
//
}