Java 如何不对Hibernate用户类型使用包信息文件?

Java 如何不对Hibernate用户类型使用包信息文件?,java,hibernate,Java,Hibernate,目前,我们在package-info.java文件中注册用户类型。这些类是使用难以维护的字符串指定的(简单的重命名将破坏代码) 像这样: @TypeDefs( { @TypeDef( name = "lienPosition", typeClass = EnumUserType.class, parameters = { @Parameter(name = "enum", value =

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

像这样:

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

有没有一种方法可以使用Hibernate以不使用字符串的方式注册这些用户类型

谢谢,
Alex

我自己没有使用过这个,我也不确定它是否能满足您的需要,但从上来看,现在似乎有了一种通过java调用注册类型的方法。如果您正在运行一个足够新的Hibernate,那么这可能是您可以连接到启动中的东西。我不相信这存在于3.5或更早的版本中

但是,下面的讨论表明,对类型系统所做的更改也可能会妨碍您的特定用户类型(
EnumUserType
在讨论中被引用),因此您可能需要一些其他更改来处理此问题