【发布时间】:2019-02-06 06:50:01
【问题描述】:
我有两个表(requests 和 requests_details),如下所示。 requests 表包含 request_id 和请求名称,requests_details 包含请求是否处于待处理、已批准或已拒绝的详细信息。我已经使用 Spring JPA 在一对多映射中实现了以下两个表。在 requests_details 表中,如果请求除了 PENDING 状态之外还有第二个条目,那么这意味着从状态中我们可以知道请求是被批准还是被拒绝
现在我需要分别获取所有待处理和批准的请求
我已经编写了如下所示的 hql 查询
用于获取所有待处理的请求
SELECT request.name, details.*
FROM requests request JOIN request_details details ON request.request_id=details.request_id
WHERE
details.status = "PENDING" AND
details.status !="APPROVED" OR details.status !="REJECTED"
但对于上述查询,它返回所有请求
用于获取所有已批准的请求
SELECT request.name, details.*
FROM requests request JOIN request_details details ON request.request_id=details.request_id
WHERE
details.status = "PENDING" AND
details.status ="APPROVED"
但对于上述查询,它没有返回任何请求
我的预期结果如下所示
谁能帮我解决这个问题
【问题讨论】:
-
我不确定你想要得到什么,但
details.status = "PENDING" AND details.status ="APPROVED"显然不可能满足,details.status = "PENDING" AND details.status !="APPROVED" OR details.status !="REJECTED"相当于(details.status = "PENDING" AND details.status !="APPROVED") OR details.status !="REJECTED"相当于details.status = "PENDING" OR details.status !="REJECTED"相当于@给定示例数据中的所有行都满足 987654333@。
标签: java spring-data-jpa jpa-2.0 hibernate-5.x