2

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

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

SELECT DISTINCT(projectId) 
FROM TASKS
WHERE userId = '55' AND status = 'IN_PROGRESS';

首先,我想知道是否有一种简单的 JPA 方法可以在给定项目 ID 列表的情况下获取所有项目对象?

其次,如何进行 JPA 查询来执行此 SQL 的功能?我猜它必须是这样的:

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

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

4

1 回答 1

5

我想知道是否有一种简单的 JPA 方法可以在给定项目 ID 列表的情况下获取所有项目对象

select p from Project p where p.id in :projectIds

如何进行 JPA 查询来执行此 SQL 的功能?

select distinct project.id 
from Task task
inner join task.project project
where task.userId = :userId and task.status = :status;

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

于 2012-05-15T15:32:53.873 回答