хранить строки произвольной длины в Postgresql
У меня есть приложение Spring, которое использует JPA (спящий режим) первоначально созданный с Spring Roo. Мне нужно хранить строки с произвольной длиной, поэтому по этой причине я аннотировал поле с @Lob:
public class MyEntity{
@NotNull
@Size(min = 2)
@Lob
private String message;
...
}
приложение работает нормально в localhost, но я развернул его на внешний сервер, и появилась проблема с кодировкой. По этой причине я хотел бы проверить, в порядке ли данные, хранящиеся в базе данных PostgreSQL. Приложение создает / обновляет таблицы автоматически. И для этого поля (сообщения) он создал столбец типа:
текст не NULL
проблема в том, что после хранения данных, если я просматриваю таблицу или просто делаю выбор этого столбца, я не вижу текста, кроме чисел. Эти числа, похоже, являются идентификаторами "где-то", где хранится эта информация.
может ли кто-нибудь сказать мне, каковы эти идентификаторы и есть ли способ быть в состоянии чтобы увидеть сохраненные данные в столбце @Lob из pgAdmin или предложения select?
есть ли лучший способ сохранить строки произвольной длины в JPA?
спасибо.
2 ответов
Я бы рекомендовал пропустить аннотацию "@Lob " и использовать columnDefinition следующим образом:
@Column(columnDefinition="TEXT")
или
@Column(columnDefinition="LONGTEXT")
посмотрите, помогает ли это просмотр данных при просмотре самой базы данных.
используйте определение @LOB, это правильно. В таблице хранится OID для каталогов - > postegreSQL - > tables - > pg_largeobject table.
двоичные данные хранятся здесь эффективно, и JPA правильно получит данные и сохранит их для вас с этим как деталь реализации.