Hi, I have a DaoHibernateImpl class. I am getting error when I am running my webapplication and the error is this class. Here is the code for OfferBankDaoHibernateImpl.java
Code:
It has xml file as:package com.xxxx.app.emom.dao.hibernate; ... public class OfferBankDaoHibernateImpl extends GenericDaoHibernateImpl<OfferBank, Long> implements OfferBankDao { static Logger log = Logger.getLogger(OfferBankDaoHibernateImpl.class); private ResourceManager rMgr = new ResourceManager(this); public List<OfferBank> findOfferBankByName(String offerBankNm) throws AppException { List<OfferBank> offerBanks = new ArrayList<OfferBank>(); try { // offerBanks = // sessionFactory.getCurrentSession().createCriteria(OfferBank.class) // .add( Restrictions.eq("offerBankNm", offerBankNm)) // .list(); offerBanks = sessionFactory.getCurrentSession().createQuery("from OfferBank ob where ob.offerBankNm = '" + offerBankNm + "'").list(); } catch (GenericJDBCException e) { log.error(e.getMessage(), e); throw new AppException(e.getMessage(), e); } catch (HibernateException e) { log.error(e.getMessage(), e); throw new AppException(e.getMessage(), e); } return offerBanks; } public Object[] getOfferBanks(List<String> offerBankTypes, int startPos, int endPos, List<Long> statusIds) { int totalRowCount = 1000000; try { if (endPos == 0) { endPos = totalRowCount; } String dataSql = rMgr.get("sql.offer_bank_get_banks"); dataSql += " " + rMgr.get("sql.offer_bank_get_banks_types_where"); if (!statusIds.isEmpty()) { dataSql += " " + rMgr.get("sql.offer_bank_get_banks_status_where"); } dataSql += " " + rMgr.get("sql.offer_banks_get_banks_group_by"); log.debug("query : " + dataSql); SQLQuery dataQuery = this.sessionFactory.getCurrentSession().createSQLQuery(dataSql); if (!statusIds.isEmpty()) { dataQuery.setParameterList("offerBankStatusIds", statusIds); } dataQuery.setParameterList("offerBankTypes", offerBankTypes).setParameter("start", startPos).setParameter("end", endPos); List offerBankList = dataQuery.list(); return makeOfferBankTO(offerBankList); } catch (RuntimeException e) { log.error("Error getOfferBanks(List<Long> offerBankTypes ,int startPos, int endPos, List<Long> statusIds)..."); throw e; } } public Object[] getOfferBanksByRegion(List<String> offerBankTypes, int startPos, int endPos, List<Long> statusIds) { int totalRowCount = 1000000; try { if (endPos == 0) { endPos = totalRowCount; } String dataSql = rMgr.get("sql.offer_bank_get_banks_by_region"); dataSql += " " + rMgr.get("sql.offer_bank_get_banks_types_where"); if (!statusIds.isEmpty()) { dataSql += " " + rMgr.get("sql.offer_bank_get_banks_status_where"); } dataSql += " " + rMgr.get("sql.offer_banks_get_banks_by_region_group_by"); log.debug("query : " + dataSql); SQLQuery dataQuery = this.sessionFactory.getCurrentSession().createSQLQuery(dataSql); if (!statusIds.isEmpty()) { dataQuery.setParameterList("offerBankStatusIds", statusIds); } dataQuery.setParameterList("offerBankTypes", offerBankTypes).setParameter("start", startPos).setParameter("end", endPos); List offerBankList = dataQuery.list(); return makeOfferBankTO(offerBankList); } catch (RuntimeException e) { log.error("Error getOfferBanksByRegion(List<Long> offerBankTypes ,int startPos, int endPos, List<Long> statusIds)"); throw e; } } public Object[] getOfferBanksByBanner(List<String> offerBankTypes, int startPos, int endPos, List<Long> statusIds) { int totalRowCount = 1000000; try { if (endPos == 0) { endPos = totalRowCount; } String dataSql = rMgr.get("sql.offer_bank_get_banks_by_banner"); dataSql += " " + rMgr.get("sql.offer_bank_get_banks_types_where"); if (!statusIds.isEmpty()) { dataSql += " " + rMgr.get("sql.offer_bank_get_banks_status_where"); } dataSql += " " + rMgr.get("sql.offer_banks_get_banks_by_banner_group_by"); log.debug("query : " + dataSql); SQLQuery dataQuery = this.sessionFactory.getCurrentSession().createSQLQuery(dataSql); if (!statusIds.isEmpty()) { dataQuery.setParameterList("offerBankStatusIds", statusIds); } dataQuery.setParameterList("offerBankTypes", offerBankTypes).setParameter("start", startPos).setParameter("end", endPos); List offerBankList = dataQuery.list(); return makeOfferBankTO(offerBankList); } catch (RuntimeException e) { log.error("Error getOfferBanksByBanner(List<Long> offerBankTypes ,int startPos, int endPos, List<Long> statusIds)"); throw e; } } public Object[] getOfferBankById(List<Long> offerBankIds) { int startPos = 1; int endPos = 100000; String dataSql = rMgr.get("sql.offer_bank_get_banks"); dataSql += " " + rMgr.get("sql.offer_bank_get_banks_ids_where"); dataSql += " " + rMgr.get("sql.offer_banks_get_banks_group_by"); log.debug("sql= " + dataSql); SQLQuery dataQuery = this.sessionFactory.getCurrentSession().createSQLQuery(dataSql); dataQuery.setParameterList("offerBankIds", offerBankIds).setParameter("start", startPos).setParameter("end", endPos); List offerBankList = dataQuery.list(); return makeOfferBankTO(offerBankList); } ..... } }
<?xml version="1.0" encoding="UTF-8"?> <properties> <sql> <database>emom</database> <database env="DV">emom</database> <database env="QA">emom</database> <database env="PR">emom</database> <offer_bank_get_banks> select * from ( select ob.offer_bank_id , ob.promo_period_id , ob.offer_bank_nm , obst.offer_bank_status_type_dsc , ob.effective_start_dt , ob.effective_end_dt , obt.offer_bank_type_dsc , obt.offer_bank_type_cd , pp.promo_period_nm , SUM(CASE WHEN a.offer_id IS NOT NULL THEN 1 ELSE 0 END) as total_count , SUM(CASE WHEN a.offer_status_type_cd = 'ED' THEN 1 ELSE 0 END) as editing_count , SUM(CASE WHEN a.offer_status_type_cd = 'FD' THEN 1 ELSE 0 END) as failed_deactive_count , SUM(CASE WHEN a.offer_status_type_cd in ('FP', 'FI') THEN 1 ELSE 0 END) as failed_production_count , SUM(CASE WHEN a.offer_status_type_cd = 'FV' THEN 1 ELSE 0 END) as failed_preview_count , SUM(CASE WHEN a.offer_status_type_cd = 'LD' THEN 1 ELSE 0 END) as loaded_count , SUM(CASE WHEN a.offer_status_type_cd in ('PE', 'PS') THEN 1 ELSE 0 END) as pending_count , SUM(CASE WHEN a.offer_status_type_cd = 'PK' THEN 1 ELSE 0 END) as parked_count , SUM(CASE WHEN a.offer_status_type_cd = 'SD' THEN 1 ELSE 0 END) as successfully_deactivated_coun , SUM(CASE WHEN a.offer_status_type_cd in ('SP','PI') THEN 1 ELSE 0 END) as successfully_loaded_to_prod_co , SUM(CASE WHEN a.offer_status_type_cd = 'SV' THEN 1 ELSE 0 END) as successfully_loaded_to_preview , SUM(CASE WHEN a.offer_status_type_cd in ('LD','PE','PS') THEN 1 ELSE 0 END) as total_pending_count , SUM(CASE WHEN a.offer_status_type_cd in ('FD','FP','FV','FR','FI') THEN 1 ELSE 0 END) as failed_count , COUNT(1) OVER(PARTITION BY 1) as total_rows , ROW_NUMBER() OVER (ORDER BY ob.effective_end_dt desc) as row_nbr , MAX(a.offer_effective_end_dt)as max_offer_effective_end_dt , MIN(a.offer_effective_start_dt)as min_offer_effective_start_dt , SUM(CASE WHEN a.offer_status_type_cd in('AR','SR','SD') THEN 1 ELSE 0 END) as ended_count , SUM(CASE WHEN a.offer_status_type_cd in('CD') THEN 1 ELSE 0 END) as copient_delay_count , SUM(CASE WHEN a.offer_status_type_cd in('SR') THEN 1 ELSE 0 END) as rejected_count , SUM(CASE WHEN a.offer_status_type_cd in('LV', 'GV', 'CD', 'GA', 'GC', 'GD', 'GI', 'GP', 'GR', 'LA', 'LI', 'LP', 'LR', 'LV', 'LE') THEN 1 ELSE 0 END) as processing_count from ${sql.database}.offer_bank ob INNER JOIN ${sql.database}.offer_bank_status obs ON ob.offer_bank_id = obs.offer_bank_id INNER JOIN ${sql.database}.offer_bank_status_type obst ON obs.offer_bank_status_type_cd = obst.offer_bank_status_type_cd INNER JOIN ${sql.database}.promo_period pp ON ob.promo_period_id = pp.promo_period_id INNER JOIN ${sql.database}.offer_bank_type obt ON ob.offer_bank_type_cd = obt.offer_bank_type_cd LEFT OUTER JOIN (Select o.offer_id , o.offer_bank_id , ost.offer_status_type_cd , o.offer_effective_end_dt , o.offer_effective_start_dt from ${sql.database}.offer o INNER JOIN ${sql.database}.offer_status os ON o.offer_id = os.offer_id INNER JOIN ${sql.database}.offer_status_type ost ON os.offer_status_type_cd = ost.offer_status_type_cd AND os.effective_end_dt is null ) a ON ob.offer_bank_id = a.offer_bank_id where obs.effective_end_dt is null </offer_bank_get_banks> ... <offer_banks_get_banks_group_by> group by ob.offer_bank_id , ob.promo_period_id , ob.offer_bank_nm , obst.offer_bank_status_type_dsc , ob.effective_start_dt , ob.effective_end_dt , obt.offer_bank_type_dsc , obt.offer_bank_type_cd , pp.promo_period_nm order by ob.effective_end_dt desc ) a where a.row_nbr between :start and :end </offer_banks_get_banks_group_by> </sql> </properties>
And the error stack is:
20:31:27,783 ERROR OfferBankDaoHibernateImpl:76 - Error getOfferBanks(List<Long> offerBankTypes ,int startPos, int endPos, List<Long> statusIds)...
Any help on this code solution is really appreciated.
Thanks in advance