有什么方法可以將此 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
提交
取消