[英]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.