2014-10-03 7 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' аннотацию. Тип 'String' a длина 16777215 должен сделать отображение – drkunibar

+0

Спасибо, drkunibar, но это не помогает. – homaxto

+0

@ drkunibar, я узнал, что ваше предложение действительно сработало. Вместе с реализацией MySQLDialect это решило мою проблему. Сначала я только пробовал две вещи самостоятельно. – homaxto

ответ

0

Вы можете дать Hibernate подсказку о типе данных:

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