В Java, с JPA и EclipseLink.
Предположим, у меня есть 3 таблицы: Поставщик, Заказ и Клиент
Я хочу получить всех клиентов, у которых есть заказ, по указанным поставщик
Предположим, поставщики и клиенты не связаны напрямую.
Они могут быть связаны только путем объединения посредством заказов:
У заказа может быть один клиент
A у клиента может быть несколько заказов
Заказ также связан с поставщиком
У поставщика может быть много заказов
У заказа может быть только 1 поставщикОдин из способов сделать это:
В JPA после настройки модели/объекта вы можете выполнить EntityManager.find(Supplier.class, 1)Это вернет поставщика и его заказы, оттуда мы сможем перейти к заказам и получить всех клиентов, связанных с этим поставщиком.
Но этот способ извлекает все данные, хотя нам нужны только клиенты и ничего больше, это создает нагрузку на БД и пропускную способность клиента.
Каков лучший способ JPA, JPQL для получения только данных клиентов, которые связаны с поставщиком?
Я знаю, что могу выполнить необработанный запрос, но это противоречит целям JPA.
Заранее спасибо,
С уважением,
Подробнее здесь: https://stackoverflow.com/questions/784 ... fficiently