@UNy

Как выполнить Join запрос в Hibernate/Spring Data?

Что делать если информация которую я хочу показать лежит в нескольких таблицах? Как сделать join запрос в Hibernate или например Spring Data Jpa? Нашел пример такого кода:
EntityManager em = emf.createEntityManager();
em.getTransaction().begin();
	
List<Object[]> results = em.createQuery("SELECT p.firstName, p.lastName, n.phoneNumber FROM Person p, PhoneBookEntry n WHERE p.firstName = n.firstName AND p.lastName = n.lastName").getResultList();

for (Object[] result : results) {
	log.info(result[0] + " " + result[1] + " - " + result[2]);
}

em.getTransaction().commit();
em.close();

Список из массивов Object и получение по индексу выглядит мягко говоря странно :) Какие есть еще варианты? Читал про DTO, выглядит логично но напрашивается вопрос: если приложение состоит из кучи сущностей, DTO тоже будет немало?
  • Вопрос задан
  • 770 просмотров
Решения вопроса 1
BorLaze
@BorLaze
Java developer
То, что тебе нужно, называется projection https://www.baeldung.com/spring-data-jpa-projections

И, в общем-то, да - сколько будет запросов с разными данными, столько DTO надо будет создать - репозитарию-то надо знать, какого типа объект строить.

Или же, да - List, поскольку другого варианта вернуть нетипизированные данные нет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Bell Integrator Ульяновск
До 400 000 ₽
Bell Integrator Хабаровск
До 400 000 ₽
Bell Integrator Ижевск
До 400 000 ₽
26 апр. 2024, в 07:47
2000 руб./за проект
26 апр. 2024, в 06:46
1000 руб./в час
26 апр. 2024, в 05:31
1000 руб./за проект