我有一个有很多任务的项目。
我有一个SQL查询,通过查询TASKS表返回userId的所有projectId ......这里是:
SELECT DISTINCT(projectId)
FROM TASKS
WHERE userId = '55' AND status = 'IN_PROGRESS';
首先,我想知道是否有一个简单的JPA方法来获取项目ID列表中的所有Project对象?
其次,如何创建一个执行此SQL操作的JPA查询?我猜它必须是这样的:
SELECT DISTINCT(Project p)
WHERE /*one of the tasks*/ p.tasks[].userId = '55' AND p.tasks[].status = 'IN_PROGRESS';
但我不知道。任何建议都非常感谢!
罗布
答案 0 :(得分:5)
我想知道是否有一个简单的JPA方法来获取项目ID列表中的所有Project对象
select p from Project p where p.id in :projectIds
如何创建一个执行此SQL操作的JPA查询?
select distinct project.id
from Task task
inner join task.project project
where task.userId = :userId and task.status = :status;
阅读有关JPQL的文档,因为这是非常基本的东西。这是Hibernate documentation on HQL,它是JPQL的一个小超集。