MarksheetDAOHibImpl.java
package com.sunilos.proj0.dao;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Restrictions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Repository;
import com.sunilos.proj0.dto.MarksheetDTO;
import com.sunilos.proj0.util.DataValidator;
/**
* Hibernate implementation of College DAO.
*
* @author SunilOS
* @version 1.0
* @Copyright (c) SunilOS
*
*/
@Repository("marksheetDAO")
public class MarksheetDAOHibImpl implements MarksheetDAOInt {
@Autowired
private SessionFactory sessionFactory = null;
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
// add method
public long add(MarksheetDTO dto) {
return (Long) sessionFactory.getCurrentSession().save(dto);
}
// update method
public long update(MarksheetDTO dto) {
sessionFactory.getCurrentSession().update(dto);
return dto.getId();
}
// delete method
public void delete(long id) {
MarksheetDTO dto = new MarksheetDTO();
dto.setId(id);
sessionFactory.getCurrentSession().delete(dto);
}
// List Search
public List search(MarksheetDTO dto) {
return search(dto, 0, 0);
}
// List Search pagination
public List search(MarksheetDTO dto, int pageNo, int pageSize) {
System.out.println("DAO search Started");
Criteria c = sessionFactory.getCurrentSession().createCriteria(
MarksheetDTO.class);
if (dto != null) {
if (dto.getStudentId() != null && dto.getStudentId() > 0) {
c.add(Restrictions.eq("studentId", dto.getStudentId()));
}
if (DataValidator.isNotNull(dto.getRollNo())) {
c.add(Restrictions.eq("rollNo", dto.getRollNo()));
}
if (pageSize > 0) {
c.setFirstResult((pageNo - 1) * pageSize);
c.setMaxResults(pageSize);
}
}
return c.list();
}
public MarksheetDTO findByPK(long pk) {
Session session = sessionFactory.getCurrentSession();
MarksheetDTO dto = (MarksheetDTO) session.get(MarksheetDTO.class, pk);
session.evict(dto);
return dto;
}
public MarksheetDTO findByRollNo(String rollNo) {
Session session = sessionFactory.getCurrentSession();
Criteria criteria = session.createCriteria(MarksheetDTO.class);
criteria.add(Restrictions.eq("rollNo", rollNo));
List<MarksheetDTO> list = criteria.list();
MarksheetDTO dto = null;
if (list.size() == 1) {
dto = (MarksheetDTO) list.get(0);
session.evict(dto);
}
return dto;
}
public List getMeritList(int pageNo, int pageSize) {
String hql = "from MarksheetDTO order by (physics + chemistry + maths) desc";
Session session = sessionFactory.getCurrentSession();
Query q = session.createQuery(hql);
return q.list();
}
}