如何在Hibernate UserTypes中不使用package-info文件?

时间:2011-04-27 21:47:41

标签: java hibernate

目前,我们在package-info.java文件中注册我们的用户类型。使用难以维护的字符串指定类(简单的重命名会破坏代码)。

像这样:

@TypeDefs(
  {
     @TypeDef(
           name = "lienPosition",
           typeClass = EnumUserType.class,
           parameters = {
              @Parameter(name = "enum", value = "com.package.level1.LienPosition")
           }
     )
  }

有没有办法使用Hibernate以不使用字符串的方式注册这些UserType?

谢谢, 亚历

1 个答案:

答案 0 :(得分:1)

我自己没有使用它,我不确定它是否会满足您的需求,但是从hibernate 3.6 docs开始,现在看来有一种方法可以通过java调用来注册类型。如果您运行的是最近足够的Hibernate,这可能是您可以挂入启动的东西。我不相信这种情况存在于3.5或更早版本中。

但是,此related bug下的讨论表明对类型系统所做的更改也可能妨碍您的特定用户类型(在讨论中引用EnumUserType),因此它可能是你需要一些其他的改变才能解决这个问题。