использование @Lob для поля в игровой структуре - PullRequest
2 голосов
/ 30 августа 2011

В игре! В учебном пособии поле content модели Post аннотировано как @ Lob.Я пробовал это сделать, и когда postgres использовался в качестве базы данных, обнаружил, что в таблице Post есть столбец с именем content, который имеет значение 133414 длинной строки, которая являлась содержимым записи. Тип столбца отображается как 'text', где в качестве других полей String в Entity были character varying

Предположим, я хочу найти посты, которые содержат определенное слово в своем содержании, как бы я сформулировал запрос? Должен ли я удалить аннотацию @Lob и позволить postgres сохранять содержимое в виде varchar в столбце содержимого?

1 Ответ

1 голос
/ 31 августа 2011

@Lob по определению является крупным объектом. Это может быть сохранено как двоичные данные или символьные данные. Поиск в lobs / clob / blob может быть очень сложным и в большинстве случаев не оптимизирован. Я бы предложил использовать более традиционные типы, такие как текст, varchar. Они индексируются и, следовательно, более производительны. (в большинстве случаев), вам также может потребоваться определить размер столбца.

Вы можете уточнить их, используя примечание к колонке:

@Column(type = "TEXT")
...