如何在 postgres 中使用 Java 插入 json 文档
Posted
技术标签:
【中文标题】如何在 postgres 中使用 Java 插入 json 文档【英文标题】:How to insert json document using Java in postgres 【发布时间】:2021-09-18 01:53:10 【问题描述】:我有一个 postgres 数据库 -
CREATE TABLE IF NOT EXISTS records (
"value" jsonb,
"tags" jsonb
);
我应该如何定义我的类 - 让 json 文档进入 value 和 tags 列?
@Entity
@Table(name = "records")
public class RecordEntity implements Serializable
private String value;
private String tags;
我应该为 value 和 tags 赋予什么注释或数据类型 - 这样一个 json 文档进入 postgres 表。
【问题讨论】:
如果答案对您有帮助或者您正在寻找什么,请告诉我? 【参考方案1】:您可以使用 hibernate-types
库将 String JPA 属性映射到 JSON 数据库列。 hibernate-types
框架非常灵活,允许您使用 String JPA 属性类型来表示 JSON 结构。
@Entity(name= "RecordEntity")
@Table(name = "records")
@TypeDef(
name ="json",
typeClass = JsonType.class
)
public class RecordEntity implements Serializable
@Type(type = "json")
@Column(columnDefinition = "jsonb")
private String value;
@Type(type = "json")
@Column(columnDefinition = "jsonb")
private String tags;
要使用休眠类型,请添加以下依赖项:
<dependency>
<groupId>com.vladmihalcea</groupId>
<artifactId>hibernate-types-55</artifactId>
<version>$hibernate-types.version</version>
</dependency>
更多细节可以在这篇文章中找到:How to map a String JPA property to a JSON column using Hibernate
【讨论】:
虽然参考资料可能有答案,但在此处添加答案的内容并稍后再参考以更清楚起见总是有帮助的。 当然,有道理。我会这样做的。 嗨@FelixKJose,它给出以下错误:-错误:列“值”是json类型,但表达式是bytea类型 哦,我没有注意到您的类型只是json
,我提供了jsonb
类型的示例。我已经更新了例子,修改的只是@Column(columnDefinition = "jsonb")
到@Column(columnDefinition = "json")
@HarshMultani 如果有帮助请告诉我。以上是关于如何在 postgres 中使用 Java 插入 json 文档的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Prisma 为 Postgres 进行 SQL 插入,条件是行数?