JPA / Hibernate Выберите подмножество столбцов при соединении

StackOverflow https://stackoverflow.com/questions/255703

  •  05-07-2019
  •  | 
  •  

Вопрос

В SQL легко выполнить соединение и вернуть только те столбцы, которые вам нужны, из объединенной таблицы. Каков наилучший способ отобразить это в JPA / Hibernate?

Например, существует объект Folder, сопоставленный с EMAIL_FOLDER, и объект Email, сопоставленный с таблицей EMAIL. Между папкой и электронной почтой существует отношение один ко многим. Сущность Email довольно тяжелая, потому что она содержит КЛОБЫ текста, вложения и т. Д. В некоторых случаях нам нужно вернуть всю электронную почту обратно, а в других случаях мы просто хотим вернуть senderName, subject и sentDate и не хотите, чтобы накладные расходы на ввод данных CLOB. Выполнить это в SQL просто, но я не уверен, какой лучший подход будет в JPA / Hibernate.

Я думаю о создании LightEmail, который сопоставляется только с senderName, subject и sentDate. Это лучший способ справиться с чем-то подобным?

Обновление: на данный момент я бы хотел по возможности избегать инструментирования байт-кодом.

Это было полезно?

Решение

Аннотируйте свойство (CLOB) как @Basic (fetch = FetchType.LAZY)

См. Объявление основных сопоставлений свойств в справочнике Hibernate

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top