目前,我们在package-info.java文件中注册我们的用户类型。使用难以维护的字符串指定类(简单的重命名会破坏代码)。
像这样:
@TypeDefs(
{
@TypeDef(
name = "lienPosition",
typeClass = EnumUserType.class,
parameters = {
@Parameter(name = "enum", value = "com.package.level1.LienPosition")
}
)
}
)
有没有办法使用Hibernate以不使用字符串的方式注册这些UserType?
谢谢, 亚历
答案 0 :(得分:1)
我自己没有使用它,我不确定它是否会满足您的需求,但是从hibernate 3.6 docs开始,现在看来有一种方法可以通过java调用来注册类型。如果您运行的是最近足够的Hibernate,这可能是您可以挂入启动的东西。我不相信这种情况存在于3.5或更早版本中。
但是,此related bug下的讨论表明对类型系统所做的更改也可能妨碍您的特定用户类型(在讨论中引用EnumUserType
),因此它可能是你需要一些其他的改变才能解决这个问题。