Criteria API左联接子查询

时间:2018-11-01 11:51:42

标签: jpa

我目前正在尝试使用条件api创建一个非常复杂的查询设置,并且达到一个起点,我开始认为使用条件API可能无法做到这一点。

我们有一个引用属性映射表的实体。

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

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

client-attributes表在实体中映射为一个集合表:

@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建立此类查询吗?

0 个答案:

没有答案