MarksheetDAOHibImpl.java
package in.co.sunrays.dao;
import in.co.sunrays.dto.MarksheetDTO;
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.stereotype.Repository;
/**
* Hibernate implementation of Marskheet DAO.
*
* @author SUNRAYS Developer
* @version 1.0
* @Copyright (c) SUNRAYS Technologies
*/
@Repository("marksheetDAO")
public class MarksheetDAOHibImpl implements MarksheetDAOInt {
@Autowired
private SessionFactory sessionFactory;
private static Logger log = Logger.getLogger(MarksheetDAOHibImpl.class);
/**
* Adds a Marksheet
*
* @param dto
* @throws DatabaseException
*/
public long add(MarksheetDTO dto) {
log.debug("DAO add Started");
long pk = (Long) sessionFactory.getCurrentSession().save(dto);
return pk;
}
/**
* Updates a Marksheet
*
* @param dto
* @throws DatabaseException
*/
public void update(MarksheetDTO dto) {
log.debug("DAO update Started");
sessionFactory.getCurrentSession().update(dto);
log.debug("DAO update End");
}
/**
* Deletes a Marksheet
*
* @param dto
* @throws DatabaseException
*/
public MarksheetDTO delete(long id) {
log.debug("DAO delete Started");
MarksheetDTO dto = findByPK(id);
if (dto != null) {
sessionFactory.getCurrentSession().delete(dto);
}
return dto;
}
/**
* Finds Marksheet by PK
*
* @param pk
* : get parameter
* @return dto
* @throws DatabaseException
*/
public MarksheetDTO findByPK(long pk) {
log.debug("DAO findByPK Started");
MarksheetDTO dto = null;
dto = (MarksheetDTO) sessionFactory.getCurrentSession().get(
MarksheetDTO.class, pk);
log.debug("DAO findByPK End");
return dto;
}
/**
* Finds Marksheet by RollNo
*
* @param name
* : get parameter
* @return dto
* @throws DatabaseException
*/
public MarksheetDTO findByRollNo(String rollNo) {
log.debug("DAO findByName Started");
MarksheetDTO dto = null;
List list = sessionFactory.getCurrentSession()
.createCriteria(MarksheetDTO.class)
.add(Restrictions.eq("rollNo", rollNo)).list();
log.debug("list size in find by name dao" + list.size());
if (list.size() == 1) {
dto = (MarksheetDTO) list.get(0);
log.debug("DTO not null");
}
log.debug("DAO findByName End");
return dto;
}
/**
* Searches Marksheet with pagination
*
* @return list : List of Colleges
* @param dto
* : Search Parameters
* @param pageNo
* : Current Page No.
* @param pageSize
* : Size of Page
* @throws DatabaseException
*/
public List search(MarksheetDTO dto, int pageNo, int pageSize) {
log.debug("DAO search Started");
Criteria c = sessionFactory.getCurrentSession().createCriteria(
MarksheetDTO.class);
if (dto.getId() > 0) {
c.add(Restrictions.eq("id", dto.getId()));
}
if (dto.getName() != null && dto.getName().length() > 0) {
c.add(Restrictions.like("name", dto.getName() + "%"));
}
if (dto.getRollNo() != null && dto.getRollNo().length() > 0) {
c.add(Restrictions.like("rollNo", dto.getRollNo() + "%"));
}
// if page size is greater than zero then apply pagination
if (pageSize > 0) {
c.setFirstResult((pageNo - 1) * pageSize);
c.setMaxResults(pageSize);
}
List list = c.list();
log.debug("Session Factory in search :" + sessionFactory);
log.debug("DAO search End");
return list;
}
/**
* Searches Marksheet
*
* @return list : List of Colleges
* @param dto
* : Search Parameters
* @throws DatabaseException
*/
public List search(MarksheetDTO dto) {
return search(dto, 0, 0);
}
}