Условно опустите поле из Entity во время запроса - PullRequest
0 голосов
/ 18 октября 2019

У меня есть объект со строковым полем, в котором находится строка с кодировкой base64 внутри столбца jsonb. Эта строка для всех сущностей не может быть нулевой и всегда будет установлена ​​в постоянное время. Все значения для этого поля составляют 20 Мегабайт +, поэтому я не хочу, чтобы это поле передавалось из базы данных каждый раз, когда я запрашиваю эту сущность.

Я отображаю только содержимое этого поля, некоторыевремени на нескольких моих страницах. Большинство других страниц, которые отображают мою сущность, не будут отображать строку из поля, которое я хочу условно исключить из передачи из БД.

Я хочу запрашивать огромное строковое значение только при необходимости. Можно ли сказать jpa выбирать эту строку только при необходимости?

Я не могу использовать @Transient, поскольку хочу, чтобы моя сущность сохранила строковое значение.

Поскольку строка, которую я хочу опустить во время запроса, большую часть времени находится внутри столбца jsonb, я предполагаю, что мне может понадобиться использовать собственный запрос и запросить все другие поля внутри объекта jsonb и пропуститьодин столбец, который мне не нужен. Это правда?

Я использую проекцию интерфейса, чтобы отобразить все другие поля, которые перечислены в виде строк в операторе select моего собственного запроса, чтобы получить доступ ко всем другим полям, кроме одного поля, которое я не делаюхочу большую часть времени.

Знали бы вы о более простом маршруте, где я мог бы сохранить некоторую простоту, если бы этот объект был когда-либо подвергнут рефакторингу или изменилось имя столбца?

Если бы я не использовал сущность, у которой был столбец типа jsonb, а изображение было просто в обычном старом столбце varchar, можно было бы опустить любое конкретное поле, используя менеджер сущностей или построитель запросов или jpql? Что-то вроде «выберите s из соединения SecurityCameraEvent s… где ...», а затем, когда я хочу получить полную сущность, я могу выбрать иначе?

Мои основные проблемы касаются рефакторинга другой сущностиполя и выяснить, есть ли у кого-нибудь лучшее решение для значений, встроенных в jsonb. Я уже знаю, что могу использовать собственный запрос с проекцией jpa, чтобы получить другие поля

...