有什么方法可以将此 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));
}
但我认为可以用更好的代码来完成。
添加回答
举报
0/150
提交
取消
