Grails 4.0.10、GORM 7.0.8发布版、Hibernate 5.4、Postgresql 11
我在Postgres中有一个“data”jsonb列。我一直在尝试通过Hibernate/GORMMap它。为了构建.gradle,我添加了
compile 'com.vladmihalcea:hibernate-types-52:2.17.3'
我的Grails实体属性具有:
data type: 'jsonb', sqlType: 'jsonb'
此时,我从
com.vladmihalcea.hibernate.type.json.internal.JsonTypeDescriptor:
public Object fromString(String string) {
if (String.class.isAssignableFrom(propertyClass)) {
return string;
}
return objectMapperWrapper.fromString(string, propertyType);
}
在本例中,propertyClass和propertyType都为null。换句话说,属性的类型声明没有Map,JsonTypeDescriptor类无法看到它。我尝试过使用@TypeDef和@Type的各种hib注解。Grails文档中有关于列“type”描述符的简短说明:
“Hibernate也有自定义UserType实现的概念。在这种情况下,您指定UserType类.”
没有一种宣言的组合对我起作用;在所有这些情况下,我无法将JSON字符串写入jsonb数据库列。2正确的解决方案是什么?
1条答案
按热度按时间hgtggwj01#
你应该用这个,在那里的工作已经完成:
https://github.com/kaleidos/grails-postgresql-extensions