Java 使用AttributeConverter转换为UUID将导致';没有JDBC类型的方言映射';例外

Java 使用AttributeConverter转换为UUID将导致';没有JDBC类型的方言映射';例外,java,postgresql,hibernate,jpa,liquibase,Java,Postgresql,Hibernate,Jpa,Liquibase,所以我有一个类,比如说Dog(不是实体)只包含UUID字段。然后我有以下属性转换器: @转换器 公共类DogConverter实现AttributeConverter{ @凌驾 公共UUID convertToDatabaseColumn(最终狗属性){ 返回属性.getUuid(); } @凌驾 public Dog convertToEntityAttribute(最终UUID数据库数据){ 返回新狗(dbData); } } 然后,我将Dog用作实体类DogHouse中的字段: @实体

所以我有一个类,比如说
Dog
(不是实体)只包含
UUID
字段。然后我有以下
属性转换器

@转换器
公共类DogConverter实现AttributeConverter{
@凌驾
公共UUID convertToDatabaseColumn(最终狗属性){
返回属性.getUuid();
}
@凌驾
public Dog convertToEntityAttribute(最终UUID数据库数据){
返回新狗(dbData);
}
}
然后,我将
Dog
用作实体类
DogHouse
中的字段:

@实体
班级狗舍{
...
@Convert(converter=DogConverter.class)
私家狗;
...
}
然后,我使用liquibase针对空的postgresql数据库创建了一个diff changelog,这会导致以下异常:

org.hibernate.MappingException: No Dialect mapping for JDBC type: 206384196
当我切换到
DogConverter
以通过将
UUID
映射到字符串来在
Dog
String
之间进行转换时,liquibase工作正常,不会出现异常


有人知道异常发生的原因以及如何修复吗?

我对postgis几何图形也有同样的问题,并得出结论,与实体字段支持的类型相比,转换器支持的类型是有限的。
在这篇文章中,如果你搜索“方言”,你会看到类似的问题。答案似乎是Hibernate5.2不可能实现。也许使用Hibernate 6也可以。

@Converter
添加到您的
DogConverter.class
。然而,您的设置似乎需要使用
@OneToOne
@XtremeBaumer
@Converter
进行正常映射,而
DogConverter
上已经有了,我忘了将其包含在示例中,我编辑了示例。显示hibernate SessionFactory的配置我遇到了类似的问题,还使用UUID作为数据库类型-您找到了解决方案还是将其保留为字符串?@MitchKent我没有找到解决方案,而是将其保留为字符串