【发布时间】:2017-10-10 12:15:45
【问题描述】:
我想创建一个对象并将其保存到数据库中
Log l = new Log();
l.setTimestamp("creation_date", Util.getCurrentTimestamp());
l.setString("app_name", "name");
l.setString("log_type", "type");
l.setLong("user_id", 9l);
l.setLong("module_element_id", 9);
l.set("info", JsonHelper.toJsonString("{}"));
l.save();
我尝试了多种解决方案,但总是收到此错误:
ERROR: column "info" is of type jsonb but expression is of type character varying
如何插入jsonb?
编辑(DDL):
-- 表:public.log
-- 删除表 public.log;
CREATE TABLE public.log
(
id bigint NOT NULL DEFAULT nextval('log_id_seq'::regclass),
creation_date timestamp without time zone,
app_name text,
log_type text,
user_id bigint,
module_element_type bigint,
info jsonb,
CONSTRAINT log_pkey PRIMARY KEY (id)
)
WITH (
OIDS=FALSE
);
ALTER TABLE public.log
OWNER TO postgres;
【问题讨论】:
-
Rony,您能否为您的桌子提供一个 DDL?
-
当然,我编辑了我的帖子
-
Rony,我认为这个功能需要添加到 PostgreSQL 方言中并与:github.com/javalite/activejdbc/issues/640 相关。我试图找到 Postgres 文档,其中列出了所有具有这种奇怪语法的类型,但无法找到它。如果你找到了,我会用它把这个功能添加到框架中。
-
好的,谢谢你的回答。如果我找到了,我会告诉你的。
-
添加了实现,请看下面的答案
标签: activejdbc