Подтвердить что ты не робот

Текстовое поле с использованием Hibernate Annotation

У меня возникли проблемы с настройкой типа String, он выглядит как

public void setTextDesc(String textDesc) {
    this.textDesc = textDesc;
}

@Column(name="DESC")
@Lob
public String getTextDesc() {
    return textDesc;
}

и это не сработало, я проверил схему mysql и остался varchar (255), я также пробовал,

@Column(name="DESC", length="9000")

или

@Column(name="DESC")
@Type(type="text")

Я пытаюсь сделать тип TEXT, любая идея будет хорошо оценена!

4b9b3361

Ответ 1

Вы сказали: "Я проверил схему mysql и остался varchar (255)" - вы ожидали, что Hibernate автоматически изменит вашу базу данных? Это не так. Даже если у вас установлен hibernate.hbm2ddl.auto, я не считаю, что Hibernate изменит существующее определение столбца.

Если вам нужно создать новое создание базы данных script, @Lob должен сгенерировать столбец типа "ТЕКСТ", если вы не указали длину явно (или если вы это делаете, а это меньше, чем 65536). Вы всегда можете заставить это явно объявить тип в @Column аннотации, хотя имейте в виду, что он не переносится между базами данных:

@Column(name="DESC", columnDefinition="TEXT")