需要使用JPA hibernate将Spring的实体属性映射到Postgres DB中的json列。数据库中有一个JSON类型的列,但是在spring中找不到对应的映射
try with this-
@Column(name = "tags", columnDefinition = "jsonb")
@JsonProperty("tags")
private Map<String,Object> tags = new HashMap<>();
但是有了这个,我们得到错误,而创建数据库表对此有什么建议吗?谢谢。如有任何帮助,不胜感激。
没有开箱即用的支持。但是你可以使用vladmihalcea图书馆。
Gradle依赖性:
implementation 'com.vladmihalcea:hibernate-types-52:2.16.2'
你的实体:
import com.vladmihalcea.hibernate.type.json.JsonType;
import org.hibernate.annotations.Type;
import org.hibernate.annotations.TypeDef;
import org.hibernate.annotations.TypeDefs;
import javax.persistence.Column;
import javax.persistence.Entity;
@Entity
@TypeDefs({
@TypeDef(name = "json", typeClass = JsonType.class)
})
class YourPojo {
@Type(type = "json")
@Column(name = "tags", columnDefinition = "json")
private Map<String,Object> tags = new HashMap<>();
}