在Hibernate 4中定义默认类型映射

时间:2013-04-16 09:15:17

标签: java hibernate mapping uuid

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

我一直在查看与此主题相关的几条评论:Postgresql UUID supported by Hibernate?Postgres + Hibernate + Java UUID以及Persisting UUID in PostgreSQL using JPA和Hibernate文档。

然而,更容易解释注释;像@Type(type =“pg-uuid”)这样的东西对我来说不起作用,因为我需要运行不同的数据库(例如H2)

所以我需要的是“将org.hibernate.type.PostgresUUIDType注册为所有暴露为java.util.UUID的属性的默认Hibernate类型映射”,正如几条评论所述。

遗憾的是,在检查完文档后,我仍然无法确切地知道如何操作。

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

谢谢,并且,

1 个答案:

答案 0 :(得分:2)

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

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)