2014-10-03 101 views
0

我有一個場景,其中數據庫列的數據類型爲mediumtext。我的實體具有以下接口:休眠時數據類型的映射

@Lob 
@Column(name = "data", length = 16777215) 
public String getData() { 
    return this.data; 
} 

不過,當我部署到我的服務器我得到這個錯誤:

HibernateException: Wrong column type in dme42_apns.appboxdatastore for column data. 
Found: mediumtext, expected: longtext 

我試圖做我自己MySQLDialect用下面的代碼不幫助:

@Override 
protected void registerVarcharTypes() { 
    super.registerVarcharTypes(); 
    registerColumnType(Types.VARCHAR, 16777215, "mediumtext"); 
    registerColumnType(Types.VARCHAR, 65535, "text"); 
} 

有沒有人有一個想法,爲什麼冬眠映射像這樣?

+1

刪除'@ Lob'註解。字符串類型的長度爲16777215應該使映射 – drkunibar 2014-10-03 11:52:32

+0

謝謝,drkunibar,但這並沒有幫助。 – homaxto 2014-10-03 12:33:45

+0

@drkunibar,我發現你的建議確實有效。與MySQLDialect的實現一起解決了我的問題。起初我只是單獨嘗試了兩件事情。 – homaxto 2014-10-06 08:26:02

回答

0

你可以給冬眠有關數據類型提示:

@Column(name = "data", length = 16777215, columnDefinition = "mediumtext")