У меня есть один существующий метод, который использует запрос 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, чтобы охватить весь сценарий. Или есть какой-нибудь другой способ добиться этого.