java-获取所有挂起的请求一对多映射
我有两个表(requests和requests_details),如下所示.请求表具有request_id,请求名称,requests_details具有请求处于待处理,已批准还是已拒绝的详细信息.我已经使用Spring JPA在一对多映射中实现了以下两个表.在requests_details表中,如果除了请求的“挂起”状态之外还有第二个条目,则意味着从状态中我们可以知道该请求是已批准还是被拒绝 现在,我需要分别获取所有待处理和批准请求 我写了如下的hql查询,如下所示 用于获取所有待处理的请求
但是对于上面的查询,它返回所有请求 获取所有批准的请求
但对于上述查询,它不返回任何请求 我的预期结果如下 有人可以帮我吗 最佳答案
在第一个查询中发生的情况是,您声明状态应该为“待处理”,而不是“已批准”(涵盖“已拒绝”)或“已拒绝”(涵盖所有其他情况),这就是您得到所有??内容的原因.
如果您尝试获取所有“待处理”,则只需
子查询确保该请求只有一个条目,这意味着它仅是“ PENDING”且未被批准或拒绝. 在第二种情况下,您没有得到任何回报,因为您声明状态应该同时为“ PENDING”和“ APPROVED”,并且始终为假. 如果您想同时获得“正在等待”和“已批准”的条目,则可以执行以下操作
发生的情况是,您找到了所有“待处理”请求,然后确保它们也都被“批准”.这是通过子查询完成的.在那里,您只需要知道ID为正确且状态为“ APPROVED”的记录就存在,这就是为什么要使用计数(即上一部分中已经拥有的数据)的原因. 注意:将请求的状态从“ PENDING”更新为“ APPROVED”或“ REJECTED”是一个好主意,而不是插入新记录.这样会更安全,查询也会更简单,更快(您不需要子查询).这还将避免可能的错误,使请求最终具有多个冲突状态. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- java多线程之wait(),notify(),notifyAll()的详解分析
- java JVM-自定义类加载器从零到有
- java – JPA OneToMany列表找不到应该继承的mappedBy属性
- 什么是Java中的Iterator的c#等价物
- Spring isTypeMatch方法:判断JavaBean是否匹配指定的类型
- java – Android:无法调用没有args的私有android.net.Uri(
- 在springboot中对kafka进行读写的示例代码
- java – 我可以根据其字段的值获取枚举吗?
- java – 如何以编程方式添加GridLayout子项的layout_column
- 如何在Jung 2中听取顶点选择的变化?