MarksheetServiceSpringImpl.java
package com.sunilos.proj0.service;
import java.util.List;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import com.sunilos.proj0.dao.MarksheetDAOInt;
import com.sunilos.proj0.dto.MarksheetDTO;
import com.sunilos.proj0.exception.DuplicateRecordException;
/**
* Session facade of Marksheet Service. It is transactional, apply delcarative
* transactions with help of Spring AOP.
*
* If unchecked exception is propagated from a method then transaction will be
* rolled back.
*
* Default propogation value is Propagation.REQUIRED and readOnly = false
*
* @author SunilOS
* @version 1.0
* @Copyright (c) SunilOS
*/
@Service("marksheetService")
public class MarksheetServiceSpringImpl implements MarksheetServiceInt {
private static Logger log = Logger
.getLogger(MarksheetServiceSpringImpl.class);
@Autowired
private MarksheetDAOInt dao = null;
/**
* Adds a Marksheet
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public long add(MarksheetDTO dto) throws DuplicateRecordException {
MarksheetDTO dtoExist = dao.findByRollNo(dto.getRollNo());
if (dtoExist != null) {
throw new DuplicateRecordException("Duplicate Marksheet");
}
return dao.add(dto);
}
/**
* Updates Marksheet
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public long update(MarksheetDTO dto) throws DuplicateRecordException {
MarksheetDTO dtoExist = findByRollNo(dto.getRollNo());
if (dtoExist != null && dtoExist.getId() != dto.getId()) {
throw new DuplicateRecordException("Duplicate Marksheet");
}
return dao.update(dto);
}
/**
* Deletes Marksheet
*/
@Transactional(propagation = Propagation.REQUIRED, readOnly = false)
public void delete(long id) {
dao.delete(id);
}
// search with pagination
@Transactional(readOnly = true)
public List search(MarksheetDTO dto, int pageNo, int pageSize) {
return dao.search(dto, pageNo, pageSize);
}
@Transactional(readOnly = true)
public List search(MarksheetDTO dto) {
return dao.search(dto, 0, 0);
}
@Transactional(readOnly = true)
public MarksheetDTO findByRollNo(String rollNo) {
return dao.findByRollNo(rollNo);
}
@Transactional(readOnly = true)
public MarksheetDTO findByPK(long pk) {
return dao.findByPK(pk);
}
@Transactional(readOnly = true)
public List getMeritList(int pageNo, int pageSize) {
return dao.getMeritList(pageNo, pageSize);
}
}