Index: forgon-tools/src/main/java/com/forgon/tools/hibernate/ObjectDaoImpl.java =================================================================== diff -u -r19696 -r20637 --- forgon-tools/src/main/java/com/forgon/tools/hibernate/ObjectDaoImpl.java (.../ObjectDaoImpl.java) (revision 19696) +++ forgon-tools/src/main/java/com/forgon/tools/hibernate/ObjectDaoImpl.java (.../ObjectDaoImpl.java) (revision 20637) @@ -731,18 +731,18 @@ } @Override public int countBySql(String sql) { - ResultSet rs = null; - try{ - rs = executeSql(sql); - if(rs.next()){ - return rs.getInt(1); - } - }catch(Exception ex){ - ex.printStackTrace(); - }finally{ - DatabaseUtil.closeResultSetAndStatement(rs); - } - return 0; + int count = 0; + Object result = getHibernateTemplate().executeWithNativeSession( + new HibernateCallback() { + @Override + public Object doInHibernate(Session session) + throws HibernateException { + Query query = session.createSQLQuery(sql); + return query.uniqueResult(); + } + }); + count = ((Number)result).intValue(); + return count; } @Override public Session getHibernateSession() {