liquibase exception unknown data type quot;JSONquot;(清算基础异常未知数据类型json;)
问题描述
我的应用程序使用的是带有MySQL和Liqubase的jhister,MySQL版本是5.7.20,支持json列,我使用ObjectMapper来映射json列和Java对象,可以用,列类型是json,但是当涉及到Liquibase(./mvnw包-Pprod dockerfile:Build)时,会出现"未知数据类型‘JSON’"的异常,测试失败,不会生成docker镜像。
我在20180410012441_Add_Entity_Ability.xml中为json列做了一点更改:
<column name="abilities" type="json">
<constraints nullable="true"/>
</column>
在我的域类中,json相关字段如下:
@Type(type = "json")
@Column(columnDefinition = "json")
private List<Skill> abilities = new ArrayList<>();
我怀疑问题与XML列/类型定义有关,Liqubase不支持json关键字,我不知道应该有什么才是正确的类型。
请帮帮忙好吗?非常感谢。
========================================================= 更新:北京时间晚上9:01 我将changeSet添加为"
<changeSet id="20180415081741-1" author="jhipster">
<sql dbms="mysql" endDelimiter="
GO" splitStatements="true"
stripComments="true">ALTER TABLE `ability` ADD `abilities` json DEFAULT NULL</sql>
</changeSet>
然后我发出"./mvnw Package-Pprod dockerfile:Build",另一个似乎与Hibernate相关的异常:
2018-04-15 20:56:52.186 ERROR 23936 --- [ main] o.h.metamodel.internal.MetadataContext : HHH015007: Illegal argument on static metamodel field injection : com.james.app.domain.Ability_#abilities; expected type : org.hibernate.metamodel.internal.SingularAttributeImpl; encountered type : javax.persistence.metamodel.ListAttribute
推荐答案
将液碱柱类型更改为jsonb
,然后尝试。
<column name="abilities" type="jsonb">
<constraints nullable="true"/>
</column>
将类型和列定义添加为jsonb
。
@Type(type = "jsonb")
@Column(columnDefinition = "jsonb")
private List<Skill> abilities = new ArrayList<>();
这篇关于清算基础异常未知数据类型&json;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:清算基础异常未知数据类型&json;


基础教程推荐
- 带更新的 sqlite CTE 2022-01-01
- 如何在 CakePHP 3 中实现 INSERT ON DUPLICATE KEY UPDATE aka upsert? 2021-01-01
- 带有WHERE子句的LAG()函数 2022-01-01
- while 在触发器内循环以遍历 sql 中表的所有列 2022-01-01
- MySQL 5.7参照时间戳生成日期列 2022-01-01
- 使用 VBS 和注册表来确定安装了哪个版本和 32 位 2021-01-01
- MySQL根据从其他列分组的值,对两列之间的值进行求和 2022-01-01
- 从字符串 TSQL 中获取数字 2021-01-01
- ORA-01830:日期格式图片在转换整个输入字符串之前结束/选择日期查询的总和 2021-01-01
- CHECKSUM 和 CHECKSUM_AGG:算法是什么? 2021-01-01