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();

}

}