RoleDAOHibImpl.java
package com.sunilos.proj0.dao;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.stereotype.Repository;
import com.sunilos.proj0.dto.RoleDTO;
/**
* Hibernate implementation of Role DAO.
*
* @author SunilOS
* @version 1.0
* @Copyright (c) SunilOS
*
*/
@Repository("roleDAO")
public class RoleDAOHibImpl implements RoleDAOInt {
@Autowired
SessionFactory sessionFactory = null;
private static Logger log = Logger.getLogger(RoleDAOHibImpl.class);
public long add(RoleDTO dto) {
log.debug("Role Dao Add Started");
long pk = (Long) sessionFactory.getCurrentSession().save(dto);
log.debug("Role Dao Add End");
return pk;
}
public void update(RoleDTO dto) {
log.debug("Role Dao Update Started");
sessionFactory.getCurrentSession().update(dto);
log.debug("Role Dao Update End");
}
public void delete(RoleDTO dto) {
log.debug("Role Dao Delete Started");
sessionFactory.getCurrentSession().delete(dto);
log.debug("Role Dao Delete End");
}
public RoleDTO findByName(String roleName) {
log.debug("Role DAO Find by Name Started");
RoleDTO dto = null;
List list = sessionFactory.getCurrentSession()
.createCriteria(RoleDTO.class)
.add(Restrictions.eq("roleName", roleName)).list();
System.out.println("List Size in Find By Name Dao" + list.size());
if (list.size() == 1) {
dto = (RoleDTO) list.get(0);
System.out.println("DTO Not Null");
}
log.debug("Role DAO Find by Name Ended");
return dto;
}
public RoleDTO findByPK(long pk) {
log.debug("RoleDAO Find by PK Started");
System.out.println("in find by pk dao start");
RoleDTO dto = null;
dto = (RoleDTO) sessionFactory.openSession().get(RoleDTO.class, pk);
log.debug("RoleDAO Find by PK Ended");
System.out.println("in find by pk dao end=" + dto.getId());
return dto;
}
public List search(RoleDTO dto, int pageNo, int pageSize)
throws DataAccessException {
log.debug("DAO search Started");
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(
RoleDTO.class);
if (dto != null) {
if (dto.getId() > 0) {
criteria.add(Restrictions.eq("id", dto.getId()));
}
if (dto.getRoleName() != null && dto.getRoleName().length() > 0) {
criteria.add(Restrictions.like("roleName", dto.getRoleName()
+ "%"));
}
if (dto.getRoleDescription() != null
&& dto.getRoleDescription().length() > 0) {
criteria.add(Restrictions.like("roleDescription",
dto.getRoleDescription() + "%"));
}
}
// if page size is greater than zero the apply pagination
if (pageSize > 0) {
criteria.setFirstResult((pageNo - 1) * pageSize);
criteria.setMaxResults(pageSize);
}
List list = criteria.list();
log.debug("DAO search End");
return list;
}
public List search(RoleDTO dto) throws DataAccessException {
return search(dto, 0, 0);
}
}