如何获取所有JPA对象的ID列表,或如何从这个SQL查询中获取JPA查询?

Rob*_*ume 2 sql jpa

我有一个有很多任务的项目.

我有一个SQL查询,通过查询TASKS表返回userId的所有projectId ...这里是:

SELECT DISTINCT(projectId) 
FROM TASKS
WHERE userId = '55' AND status = 'IN_PROGRESS';
Run Code Online (Sandbox Code Playgroud)

首先,我想知道是否有一个简单的JPA方法来获取项目ID列表中的所有Project对象?

其次,如何创建一个执行此SQL操作的JPA查询?我猜它必须是这样的:

SELECT DISTINCT(Project p)
WHERE /*one of the tasks*/ p.tasks[].userId = '55' AND p.tasks[].status = 'IN_PROGRESS';
Run Code Online (Sandbox Code Playgroud)

但我不知道.任何建议都非常感谢!

JB *_*zet 5

我想知道是否有一个简单的JPA方法来获取项目ID列表中的所有Project对象

select p from Project p where p.id in :projectIds
Run Code Online (Sandbox Code Playgroud)

如何创建一个执行此SQL操作的JPA查询?

select distinct project.id 
from Task task
inner join task.project project
where task.userId = :userId and task.status = :status;
Run Code Online (Sandbox Code Playgroud)

阅读有关JPQL的文档,因为这是非常基本的东西.这是关于HQLHibernate文档,它是JPQL的一个小超集.