package seed.dao; import java.util.List; import org.apache.log4j.Logger; import org.hibernate.Criteria; import org.hibernate.HibernateException; import org.hibernate.SessionFactory; import org.hibernate.criterion.MatchMode; import org.hibernate.criterion.Order; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; import org.springframework.stereotype.Repository; import seed.map.T_LOGS; import seed.map.VIEW_LOGS; @Repository public class LogsDAOImpl implements LogsDAO { private Logger log = Logger.getLogger(this.getClass()); private SessionFactory sessionFactory; public void setSessionFactory(SessionFactory sessionFactory) { this.sessionFactory = sessionFactory; } public Long getSiteMemberLogListCnt(String logsType, String logsSubType, String column, String search, String sDate, String eDate){ Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_LOGS.class); criteria.add(Restrictions.eq("logsType", logsType)); if(!logsSubType.equals("")){ criteria.add(Restrictions.eq("logsSubType", logsSubType)); } if(!column.equals("") && !search.equals("")){ criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE)); } if(!sDate.equals("") && !eDate.equals("")){ criteria.add( Restrictions.and( Restrictions.ge("logsRegDate", sDate), Restrictions.le("logsRegDate", eDate))); } criteria.setProjection(Projections.rowCount()); return (Long)criteria.uniqueResult(); } @SuppressWarnings("unchecked") public List getLogsList(String logsType, String logsSubType, int page, int row, String orderColumn, String order, String column, String search, String sDate, String eDate){ Criteria criteria = sessionFactory.getCurrentSession().createCriteria(VIEW_LOGS.class); criteria.setFirstResult(page); criteria.setMaxResults(row); criteria.add(Restrictions.eq("logsType", logsType)); if(!logsSubType.equals("")){ criteria.add(Restrictions.eq("logsSubType", logsSubType)); } if(!column.equals("") && !search.equals("")){ criteria.add(Restrictions.like(column, search, MatchMode.ANYWHERE)); } if(!sDate.equals("") && !eDate.equals("")){ criteria.add( Restrictions.and( Restrictions.ge("logsRegDate", sDate), Restrictions.le("logsRegDate", eDate))); } if(order.equals("DESC")){ criteria.addOrder(Order.desc(orderColumn)); }else{ criteria.addOrder(Order.asc(orderColumn)); } return criteria.list(); } public void setLogsRegProc(T_LOGS tLogs){ try{ this.sessionFactory.getCurrentSession().save(tLogs); this.sessionFactory.getCurrentSession().flush(); this.sessionFactory.getCurrentSession().clear(); }catch(HibernateException e){ log.error("CHECK ERROR:",e); } } }