piatachki
@piatachki

Почему поле String с аннотацией @Lob сохраняется как число?

Здравствуйте )

Проблема в том, что при сохранении сущности с полем

@Lob
@Column(name = "content")
private String content;


сущность сохраняется в БД как число (откуда оно берется - непонятно), причем увеличивается на единицу с каждой новой сохраненной сущностью, как будто айдишник. Контекст один, сохранение штатным методом через CrudRepository. Тип колонки в БД - TEXT.

Единственное, что сеттер построен как билдер

public MyEntity setContent(String content) {
   this.content = content;
   return this;
}


Может из-за этого быть такое поведение?
Если убрать аннотацию @Lob, то все работает нормально. Я что-то в тупике.

Стэк: Spring Boot 2, Hibernate 5.0.1, Postgres
  • Вопрос задан
  • 3949 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Java
Седой и строгий
В PostgreSQL есть два типа LOB - BLOB и CLOB. Судя по тому, что поле сущности имеет тип String, вам нужно второе. И об этом надо дополнительно сообщить:
@Lob @Type(type = "org.hibernate.type.TextType")
private String content;
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы