JPA / Hibernate Выберите подмножество столбцов при соединении
Вопрос
В 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