为了账号安全,请及时绑定邮箱和手机立即绑定

将 Oracle NVl 查询转换为条件查询

将 Oracle NVl 查询转换为条件查询

斯蒂芬大帝 2022-03-10 21:38:31
有什么方法可以将此 Oracle 查询转换为条件查询。SELECT * FROM T_MERCHANT_ORDER_DETAILS where MERCHANT_ID = in_merchantId and ORDER_ID= nvl(in_orderId,ORER_ID) and TRANSACTION_ID=nvl(in_txnId,TRANSACTION_ID); in_merchantId 和 in_orderId 是传递给 oracle 过程的变量。我可以在 Hibernate 中执行此操作吗?注意::: 如果 orderId 和 txnId 为 null,则返回基于 MercerId 的结果集,如果只有 txnId 为 null,则返回基于 MercerId 和 orderId 的结果集,如果没有一个为 null,则返回所有三个。提前致谢。
查看完整描述

1 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

我这样做是为了让它工作。


if(orderId==null && transactionId ==null) {

        criteria.select(root).where(builder.equal(root.get("merchantId"),merchantId));

    }

    else if(transactionId==null && orderId!=null) {

        criteria.select(root).where(builder.equal(root.get("merchantId"),merchantId),builder.equal(root.get("orderId"),orderId));

    }

    else {

        criteria.select(root).where(builder.equal(root.get("merchantId"),merchantId),builder.equal(root.get("transactionId"),transactionId));

    }

但我认为可以用更好的代码来完成。


查看完整回答
反对 回复 2022-03-10
  • 1 回答
  • 0 关注
  • 240 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号