未知数据类型:" JSON"

时间:2018-02-06 08:37:28

标签: java hibernate

我们试图在hibernate中定义一个json列,如下所示:

实体类:

@TypeDef( name="CustomType", CustomJSONType.class)
...
@Type( name = "CustomType")
@Column
private JSONObject myColumn;
...

CustomJSONType类实现UserType

当应用程序运行时,日志会显示以下错误跟踪:

  

2018-02-06 08:46:44.067错误[company-operations-module ,,,] 11804 ---   [main] org.hibernate.tool.hbm2ddl.SchemaExport:   HHH000389:不成功:创建表操作(id int4 not null,   创建时间戳不为null,键入varchar(50)not null,request_data   json not null,response_data json,status varchar(50)not null,   user_id varchar(30),主键(id))2018-02-06 08:46:44.067错误   [operations-module ,,,] 11804 --- [主要]   org.hibernate.tool.hbm2ddl.SchemaExport:未知数据类型:" JSON"   未知数据类型:" JSON&#34 ;; SQL语句:创建表操作(id   int4 not null,创建时间戳不为null,类型varchar(50)not null,   request_data json ...)[50004-190] 2018-02-06 08:46:44.067 INFO   [operations-module ,,,] 11804 --- [主要]   org.hibernate.tool.hbm2ddl.SchemaExport:HHH000230:架构导出   完整

有什么想法吗? 提前谢谢。

2 个答案:

答案 0 :(得分:3)

H2数据库不支持JSON数据类型。所以,你的测试失败了。

我建议你做的一件事是将JSON列存储为TEXT并根据需要处理数据。

答案 1 :(得分:1)

还可以使用“创建域”选项将H2配置为以JSON作为文本。 例如,在连接URL中:

jdbc:h2:~/test;AUTO_SERVER=TRUE;INIT=create domain if not exists json as text