Spring boot JPQL中的多个内部连接

Spring boot JPQL中的多个内部连接,spring-boot,spring-data-jpa,jpql,Spring Boot,Spring Data Jpa,Jpql,我一直在尝试编写一个jpql查询,但是得到了一个异常 原因:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:*第1行第8列附近[从com.highpeak.tlp.datastore.model.TaskRequestModel trm internal join trm.task.matterId m internal join trm.task.matterId.client c中选择*其中trm.isActive为true,

我一直在尝试编写一个
jpql
查询,但是得到了一个异常

原因:org.hibernate.hql.internal.ast.QuerySyntaxException:意外标记:*第1行第8列附近[从com.highpeak.tlp.datastore.model.TaskRequestModel trm internal join trm.task.matterId m internal join trm.task.matterId.client c中选择*其中trm.isActive为true,trm.task.isActive为true,trm.task.matterId.isActive为true,trm.task.matterId.client.isActive为true trm.requestedFor=:所有者订单由trm.createdAt DESC]

我的问题是

SELECT * FROM TaskRequestModel trm inner join trm.task t 
inner join trm.task.matterId m inner join trm.task.matterId.client c 
where trm.isActive is true and trm.task.isActive is true and 
trm.task.matterId.isActive is true and 
trm.task.matterId.client.isActive is true trm.requestedFor =:owner 
 order by trm.createdAt DESC"
可能是什么问题

更新 我甚至试过

SELECT * FROM TaskRequestModel trm inner join trm.task t inner join 
t.matterId m inner join m.client c where trm.isActive is true and 
t.isActive is true and m.isActive is true and c.isActive is true and 
trm.requestedFor =:owner  order by trm.createdAt DESC

我不确定
是真的
是有效的JPQL(它肯定不是有效的SQL)。因此,如果列为布尔值,您应该直接在
WHERE
子句中断言它们。除此之外,您在
WHERE
子句中还缺少
。将这一切放在一起,并删除不正确的
GROUP BY
子句,可以得出以下结论:

SELECT *
FROM TaskRequestModel trm
JOIN trm.task t 
JOIN trm.task.matterId m
JOIN trm.task.matterId.client c 
WHERE
    trm.isActive AND
    trm.task.isActive AND 
    trm.task.matterId.isActive AND
    trm.task.matterId.client.isActive AND
    trm.requestedFor =:owner 
ORDER BY trm.createdAt DESC

我不确定
是真的
是有效的JPQL(它肯定不是有效的SQL)。因此,如果列为布尔值,您应该直接在
WHERE
子句中断言它们。除此之外,您在
WHERE
子句中还缺少
。将这一切放在一起,并删除不正确的
GROUP BY
子句,可以得出以下结论:

SELECT *
FROM TaskRequestModel trm
JOIN trm.task t 
JOIN trm.task.matterId m
JOIN trm.task.matterId.client c 
WHERE
    trm.isActive AND
    trm.task.isActive AND 
    trm.task.matterId.isActive AND
    trm.task.matterId.client.isActive AND
    trm.requestedFor =:owner 
ORDER BY trm.createdAt DESC

问题太多。请不要将
groupby
SELECT*
混合使用。即使在删除groupby之后,也会出现相同的错误。问题太多。请不要将
groupby
SELECT*
混合使用。即使在删除groupby之后,也会出现相同的错误。。。。