Критерии API оставили присоединиться к подзапросу - PullRequest
0 голосов
/ 01 ноября 2018

В настоящее время я пытаюсь создать довольно сложную настройку запроса с критериями api, и я достиг точки, когда начал думать, что это невозможно сделать с помощью API критериев.

У нас есть объект, имеющий ссылку на таблицу карт атрибутов.

client
____________
|id|...|...|
|--|---|---|
|__|___|___|

client-attributes
_____________________
|clientid|name|value|
|--------|----|-----|
|________|____|_____|

таблица атрибутов клиента отображается в сущности как таблица сбора:

@ElementCollection
@MapKeyColumn(name="NAME")
@Column(name="VALUE", length = 4000)
@CollectionTable(name="CLIENT_ATTRIBUTES", joinColumns={ @JoinColumn(name="CLIENT_ID") })
protected Map<String, String> attributes = new HashMap<String, String>();

этот код не наш, нам просто нужно с этим работать, и мы не можем вносить в него какие-либо изменения ...

Теперь я хочу построить запрос, подобный следующему, который может иметь произвольное количество дополнительных левых соединений после

SELECT *
from (SELECT *
  from keycloak.USER_ENTITY U
           LEFT JOIN (SELECT * from keycloak.USER_ATTRIBUTE attr where attr.NAME = 'attribute1')
      as attribute1 on attribute1.USER_ID = U.ID
           LEFT JOIN (SELECT * from keycloak.USER_ATTRIBUTE attr where attr.NAME = 'attribute2') as attribute2
           on attribute2.USER_ID = U.ID) as U;

Кто-нибудь знает, как я могу строить такие запросы с критериями API?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...