本文介紹了清算基礎(chǔ)異常未知數(shù)據(jù)類型&json;的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!
問(wèn)題描述
我的應(yīng)用程序使用的是帶有MySQL和Liqubase的jhister,MySQL版本是5.7.20,支持json列,我使用ObjectMapper來(lái)映射json列和Java對(duì)象,可以用,列類型是json,但是當(dāng)涉及到Liquibase(./mvnw包-Pprod dockerfile:Build)時(shí),會(huì)出現(xiàn)”未知數(shù)據(jù)類型‘JSON’”的異常,測(cè)試失敗,不會(huì)生成docker鏡像。
我在20180410012441_Add_Entity_Ability.xml中為json列做了一點(diǎn)更改:
<column name="abilities" type="json">
<constraints nullable="true"/>
</column>
在我的域類中,json相關(guān)字段如下:
@Type(type = "json")
@Column(columnDefinition = "json")
private List<Skill> abilities = new ArrayList<>();
我懷疑問(wèn)題與XML列/類型定義有關(guān),Liqubase不支持json關(guān)鍵字,我不知道應(yīng)該有什么才是正確的類型。
請(qǐng)幫幫忙好嗎?非常感謝。
=========================================================
更新:北京時(shí)間晚上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>
然后我發(fā)出”./mvnw Package-Pprod dockerfile:Build”,另一個(gè)似乎與Hibernate相關(guān)的異常:
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<>();
這篇關(guān)于清算基礎(chǔ)異常未知數(shù)據(jù)類型&json;的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,