【发布时间】:2019-10-19 21:16:16
【问题描述】:
我有一个使用 JOOQ 读/写的 postgres 数据库。我的一个数据库表有一个 JSON 类型的列。当我尝试使用下面的查询将数据插入此列时,我收到错误
Exception in thread "main" org.jooq.exception.DataAccessException: SQL [update "public"."asset_state" set "sites_as_json" = ?]; ERROR: column "sites_as_json" is of type json but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
下面是向列中插入数据的代码
SiteObj s1 = new SiteObj();
s1.setId("1");
s1.setName("Site1");
s1.setGeofenceType("Customer Site");
SiteObj s2 = new SiteObj();
s2.setId("2");
s2.setName("Site2");
s2.setGeofenceType("Customer Site");
List<SiteObj> sitesList = Arrays.asList(s1, s2);
int result = this.dsl.update(as).set(as.SITES_AS_JSON, LambdaUtil.convertJsonToStr(sitesList)).execute();
调用 LambdaUtil.convertJsonToStr(sitesList) 会输出一个如下所示的字符串...
[{"id":"1","name":"Site1","geofenceType":"Customer Site"},{"id":"2","name":"Site2","geofenceType":"Customer Site"}]
我需要做什么才能插入 JSON 列?
【问题讨论】:
标签: json postgresql java-8 jooq