[英]Using AttributeConverter converting to UUID results in 'No Dialect mapping for JDBC type' exception
所以我有一个类,可以说只包含一个UUID
字段的Dog
(不是实体)。 然后我有以下AttributeConverter
:
@Converter
public class DogConverter implements AttributeConverter<Dog, UUID> {
@Override
public UUID convertToDatabaseColumn(final Dog attribute) {
return attribute.getUuid();
}
@Override
public Dog convertToEntityAttribute(final UUID dbData) {
return new Dog(dbData);
}
}
然后我使用Dog
作为实体类DogHouse
中的一个字段:
@Entity
class DogHouse {
...
@Convert(converter = DogConverter.class)
private Dog dog;
...
}
然后我使用 liquibase 针对空的 postgresql 数据库创建一个差异更改日志,然后导致以下异常:
org.hibernate.MappingException: No Dialect mapping for JDBC type: 206384196
当我更改为DogConverter
以通过还将UUID
映射到字符串在Dog
和String
之间进行转换时,liquibase 工作正常并且没有出现异常。
有谁知道为什么会发生异常以及如何修复它?
我对 postgis Geometry 有同样的问题,并得出结论,与实体字段支持的类型相比,转换器支持的类型是有限的。 在这篇文章https://gitter.im/hibernate/hibernate-orm?at=5ab11305e4d1c636041f1251如果您搜索“方言”,您会看到类似的问题。 答案似乎是 Hibernate 5.2 不可能。 也许 Hibernate 6 可以实现。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.