搜索API规范

时间:2019-10-15 16:39:15

标签: spring-boot

您好,希望得到一些帮助,我有一张这样的桌子

status  senderbank  receiverbank
Completed   HDFC     SBI
Queued  SBI         HDFC
Failed  SBI         ICICI

如果用户输入与senderBank或​​ReceiverBank进行比较的银行名称,我就能得到详细信息。但是如果状态为排队,则应该仅与senderBank.Ex进行比较。例如:用户尝试搜索HDFC时,应该只会得到第一条记录即

status  senderbank  receiverbank
Completed   HDFC       SBI

下面是我尝试过的代码:

public Specification<Entity> hasBankName(String bankName) {

return (root,query,cb) -> cb.or(cb.equals(root.get("senderBank"), bankName),cb.equal(root.get("receiverBank"), bankName));

有人在排队时请帮助我修改上面的代码。谢谢。

1 个答案:

答案 0 :(得分:0)

specification应该有效:

(root,query,cb) -> cb.and(cb.or(cb.equals(root.get("senderBank"), bankName), cb.equal(root.get("receiverBank"), 
                          cb.notEqual(root.get("status"), "Queued"))))