У меня есть иерархия членов - организаций и пользователей . Организация может содержать другие организации или пользователей. Организация или пользователь является членом только одной организации (1: N). Иерархия хранится в таблице member . Таблица организация содержит данные организаций, а пользователь содержит данные пользователей:
CREATE TABLE member(
member_id CHARACTER VARYING(255) NOT NULL,
parent_member_id CHARACTER VARYING(255),
...
);
CREATE TABLE organization (
member_id CHARACTER VARYING(255) NOT NULL,
name CHARACTER VARYING(255) NOT NULL,
...
);
CREATE TABLE user (
member_id CHARACTER VARYING(255) NOT NULL,
username CHARACTER VARYING(255) NOT NULL,
first_name CHARACTER VARYING(255) NOT NULL,
last_name CHARACTER VARYING(255) NOT NULL,
...
);
Мне нужно создать конечную точку, которая бы возвращала отсортированный нумерованный список прямых членов определенного члена. Возвращаемый список должен содержать смесь организаций и пользователей. Я использую данные весны (JPARepository). Самый простой способ, которым я мог бы добиться этого, это сделать запрос к таблице организация (используя соединение по элементу), затем выполнить запрос к таблице пользователь (используя соединение по члену), а затем объединить наборы результатов. Но несколько последовательных запросов не кажутся эффективными. Есть ли способ лучше? Например, заменить два запроса параллельными запросами? Или получить набор результатов в одном запросе? Пожалуйста, порекомендуйте. Заранее спасибо.