java - 如何不将包信息文件与 Hibernate UserTypes 一起使用?

标签 java hibernate

目前我们在 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/

相关文章:

java - Quarkus、PanacheEntity 和保存列表或集

hibernate - 将 liquibase 与 Spring JPA/Hibernate 一起使用的正确方法?

java - 序列未重置模拟 HSQL 数据库并导致 JBehave 测试之间的约束冲突

c# - 炼金术 WebSocketClient

java - Autowiring 或新的 RetryTemplate

java - 生成跨多个表唯一的主键

Spring @RequestBody REST 服务 post 方法在某些实体关系中返回 415

java - 有什么办法可以让下面的Java代码执行得更快吗?

java - ArrayList 列出 null 而不是对象的实例

java - 如何从 Java 代码运行 .py 脚本?