目前我们在 package-info.java 文件中注册我们的用户类型。这些类是使用难以维护的字符串指定的(简单的重命名会破坏代码)。
像这样:
@TypeDefs(
{
@TypeDef(
name = "lienPosition",
typeClass = EnumUserType.class,
parameters = {
@Parameter(name = "enum", value = "com.package.level1.LienPosition")
}
)
}
)
有没有办法使用 Hibernate 以不使用字符串的方式注册这些 UserType?
谢谢, 亚历克斯
最佳答案
我自己没有用过,我不确定它是否能满足您的需求,但来自 hibernate 3.6 docs ,看起来现在有一种方法可以通过 java 调用注册类型。如果您正在运行足够新的 Hibernate,这可能是您可以挂接到您的启动程序中的东西。我不相信这在 3.5 或更早版本中存在。
然而,这下的讨论related bug表示对类型系统所做的更改也可能会妨碍您的特定用户类型(讨论中引用了 EnumUserType
),因此您可能需要一些其他更改来处理此问题。
关于java - 如何不将包信息文件与 Hibernate UserTypes 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5811013/