【问题标题】:Defina a default type mapping on Hibernate 4在 Hibernate 4 中定义默认类型映射
【发布时间】:2013-04-17 21:31:24
【问题描述】:

我需要定义/覆盖默认的休眠映射来解决 java.util.UUID 默认映射的问题。

我一直在查看与该主题相关的几个 cmets:这里是 Postgresql UUID supported by Hibernate?Postgres + Hibernate + Java UUIDPersisting UUID in PostgreSQL using JPA 以及 Hibernate 文档。

然而,annotate 更简单的解决方案; @Type(type="pg-uuid") 之类的东西对我不起作用,因为我需要使用不同的数据库(例如 H2)运行

所以我需要的是“注册 org.hibernate.type.PostgresUUIDType 作为暴露为 java.util.UUID 的所有属性的默认 Hibernate 类型映射”,正如在几个 cmets 中所说的那样。

遗憾的是,在查看文档后,我仍然不知道该怎么做。

能否请您解释或指出有关如何覆盖 Hibernate 4.2 中的默认类型映射的更详细信息?

谢谢,问候,

【问题讨论】:

    标签: java hibernate mapping uuid


    【解决方案1】:

    我发现的最佳解决方案是定义一个自定义类型,该类型将根据环境变量进行切换,类似于此处所做的:

    https://zorq.net/b/2012/04/21/switching-hibernates-uuid-type-mapping-per-database/

    所以我定义了一个 MyUuid 类,用 @Type(type="whatever") 注释实体中的相关 UUID 字段,并且在实体级别,我定义了新映射

    @TypeDef(name="whatever", defaultForType = UUID.class, typeClass = MyUuid.class)

    【讨论】:

      猜你喜欢
      • 2012-12-23
      • 2017-10-11
      • 2011-12-15
      • 1970-01-01
      • 2019-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      相关资源
      最近更新 更多