SpringBoot将Java实体映射到数据库中的Json列



需要使用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<>();
}

最新更新