我正在尝试添加一个新的LiquibaseDatatype扩展,即使JAR在运行时位于'lib'目录并且位于类路径上,它也不被ServiceLocator选中。
我已经在加载类时添加了一个静态初始化程序(以及其他方法)但仍然没有快乐。
public class MyType extends LiquibaseDataType {
static {
System.out.println("LOADED");
}
public MyType() {
System.out.println("CONSTRUCTED");
}
@Override
public String getName() {
String result = "mytype";
System.out.println(result);
return result;
}
@Override
public String[] getAliases() {
return new String[] { "MYTYPE", };
}
@Override
public int getPriority() {
return super.getPriority() + 10;
}
@Override
public boolean supports(Database database) {
boolean result = (database instanceof MySQLDatabase) || (database instanceof OracleDatabase)
|| (database instanceof DB2Database);
return result;
}
@Override
public int hashCode() {
return super.hashCode() + 37;
}
}
我知道我可以将数据库类型属性元素添加到XML并使用$ notation来执行此操作..
<property name="MYTYPE" value="WHATEVER" dbms="db2"/>
<property name="MYTYPE" value="WHATEVER_ELSE" dbms="oracle"/>
...
<column name="COLX" type="${MYTYPE}"/>
...
但我想明确设置类型。
<column name="COLX" type="mytype"/>
非常感谢任何帮助。