Когда начинают говорить об оптимизации запросов Hibernate, разговор быстро приходит к N+1, join fetch, entity graph и настройке batch выборки. Но есть более простой случай, который легко пропустить.
Допустим нам нужно сохранить книгу. Её автор уже существует в базе и его ID пришёл в запросе, данные автора: имя, дата рождения и всё остальное нас вообще не интересуют. Нам нужно только записать author_id в таблицу book. Вот здесь возникает вопрос: зачем перед сохранением сначала получать автора? Разберёмся, как от него избавиться и причём здесь метод getReference().
Исходная модель данных
Две обычные сущности:
Читать полностью »
