我使用 Hibernate + JPA 作为我的 ORM 解决方案。
我使用 HSQL 进行单元测试,使用 PostgreSQL 作为真正的数据库。
我希望能够在 Hibernate 中使用 Postgres 的本机UUID类型,并在其字符串表示中使用 UUID 和 HSQL 进行单元测试(因为 HSQL 没有 UUID 类型)。
我正在为 Postgres 和 HSQL 单元测试使用具有不同配置的持久性 XML。
这是我如何让 Hibernate “看到”我的自定义 UserType:
@Id
@Column(name="UUID", length=36)
@org.hibernate.annotations.Type(type="com.xxx.UUIDStringType")
public UUID getUUID() {
return uuid;
}
public void setUUID(UUID uuid) {
this.uuid = uuid;
}
这很好用。但我需要的是能够将注释的“com.xxx.UUIDStringType”部分换出 XML 或属性文件,无需重新编译即可更改。
有任何想法吗?