gpt4 book ai didi

java - 如何在 JPQL 中对同一个表使用两次连接?

转载 作者:行者123 更新时间:2023-11-30 07:08:29 25 4
gpt4 key购买 nike

我在 JPQL 中有两个查询与一个实体连接。我需要获取两个结果中的 Assets (即与同一个表连接两次)。

第一个查询为我提供了具有特定属性的 Assets 列表:

select distinct(a) from Asset a join a.properties p where p.name = :name

第二个查询为我提供了我有权访问的 Assets 列表:

select distinct(assets) from Asset assets inner join assets.groups assetgroups inner join assetgroups.permissions permissions inner join permissions.usrGroups usergroups with usergroups.id in :groups

我需要一个我可以访问的 Assets 列表以及该属性名称。我使用 Hibernate 作为 JPA 后端。我尝试了多种选择,但到目前为止都没有成功。我该怎么做?

谢谢

最佳答案

假设 Asset 具有名为 assetId 的 id 字段,这应该可以工作:

select asset from Asset asset
WHERE asset.assetId in (select distinct(a.assetId) from Asset a join a.properties p where p.name = :name)
AND asset.assetId in (select distinct(a.assetId) from Asset a inner join a.groups assetgroups inner join assetgroups.permissions permissions inner join permissions.usrGroups usergroups with usergroups.id in :groups)

关于java - 如何在 JPQL 中对同一个表使用两次连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39621608/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com