Эффективный способ добавить параметризованный запрос для Hibernate - PullRequest
0 голосов
/ 19 июня 2020

У меня есть один существующий метод, который использует запрос Hibernate для извлечения данных из БД. Запрос создается на основе IF Else Condition. Как преобразовать запрос в параметризованный запрос.

рабочий Код выглядит следующим образом:

Session session = getCurrentSession();
        List<Configuration> results = new ArrayList<>();
        try {
            String hql = "from PaymentConfiguration where activeIndicator = 'Y' AND (countryCode = null OR countryCode = '" + countryCode+ "')" ;
            if (null != currencyCode && !(currencyCode.isEmpty())) {
                hql += " AND ( billingCurrencyCode = null OR billingCurrencyCode = '" + currencyCode + "')";
            }
            if (null != paymentCategory && !(paymentCategory.isEmpty())) {
                hql += " AND paymentCategory = '" + paymentCategory + "'";
            }
            if (null != paymentType && !(paymentType.isEmpty())) {
                hql += " AND paymentType = '" + paymentType + "'";
            }
            if(null!= region && (region.equalsIgnoreCase("Domestic"))){
                hql += " AND vendorId in("v1,v2,v3")";
            }
            else
            {
                hql+=" AND vendorId in ("v1,v3,v4")";
            }

            results = session.createQuery(hql).list();  

Насколько я знаю, я могу использовать setParameter("countryCode", countryCode), но как использовать его в условии if else, чтобы охватить весь сценарий. Или есть какой-нибудь другой способ добиться этого.

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