public int countByPrice(String title, String listParent, int formPrice, int toPrice) throws SystemException { Session session = null; try { session = openSession(); StringBuffer query = new StringBuffer(); query.append( "SELECT COUNT(*) as total FROM Vlookupprice WHERE (listParent LIKE ?) AND (title LIKE ?) "); if (formPrice != 0) { query.append("AND (price >= ?) "); } if (toPrice != 0) { query.append("AND (price <= ?) "); } SQLQuery q = session.createSQLQuery(query.toString()); q.addScalar("total", Type.LONG); int queryPos = 0; q.setString(queryPos++, "%" + listParent + "%"); q.setString(queryPos++, "%" + title + "%"); if (formPrice != 0) { q.setInteger(queryPos++, formPrice); } if (toPrice != 0) { q.setInteger(queryPos++, toPrice); } Long count = null; Iterator ite = q.list().iterator(); while (ite.hasNext()) { count = (Long) ite.next(); } if (count == null) { count = new Long(0); } return count.intValue(); } catch (Exception e) { throw new SystemException(e); } finally { closeSession(session); } }
/** * @param parentId * @param formPrice * @param toPrice * @param start * @param end * @return * @throws SystemException */ public List findByPrice( String title, String listParent, int formPrice, int toPrice, int start, int end) throws SystemException { Session session = null; try { session = openSession(); StringBuffer query = new StringBuffer(); query.append("SELECT * FROM Vlookupprice WHERE (listParent LIKE ?) AND (title LIKE ?) "); if (formPrice != 0) { query.append( "AND ((position1 >= ?) OR (position2 >=?) OR (position3 >=?) OR (position4>=?) OR (position5>=?)) "); } if (toPrice != 0) { query.append( "AND ((position1 <= ?) OR (position2 <=?) OR (position3 <=?) OR (position4 <=?) OR (position5 <=?)) "); } SQLQuery q = session.createSQLQuery(query.toString()); q.addEntity("Vlookupprice", VlookuppriceImpl.class); int queryPos = 0; q.setString(queryPos++, "%" + listParent + "%"); q.setString(queryPos++, "%" + title + "%"); if (formPrice != 0) { q.setInteger(queryPos++, formPrice); q.setInteger(queryPos++, formPrice); q.setInteger(queryPos++, formPrice); q.setInteger(queryPos++, formPrice); q.setInteger(queryPos++, formPrice); } if (toPrice != 0) { q.setInteger(queryPos++, toPrice); q.setInteger(queryPos++, toPrice); q.setInteger(queryPos++, toPrice); q.setInteger(queryPos++, toPrice); q.setInteger(queryPos++, toPrice); } return QueryUtil.list(q, getDialect(), start, end); } catch (Exception e) { throw new SystemException(e); } finally { closeSession(session); } }