Конвертировать Oracle NVl QUery в критерии запроса - PullRequest
0 голосов
/ 10 декабря 2018

есть ли способ преобразовать этот запрос 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 - переменные, переданные процедуре оракула.Могу ли я сделать это в Hibernate.

NOTE ::: он возвращает набор результатов, основанный на merchantId, если orderId и txnId равны нулю, или merchantId и orderId, если только txnId равен нулю, и на всех трех, если никто не равен нулю.

Заранее спасибо.

1 Ответ

0 голосов
/ 11 декабря 2018

Я сделал это, чтобы заставить его работать.

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));
    }

, но я думаю, что это можно сделать с более лучшим кодом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...