package org.skyscreamer.yoga.demo.test.controller; import static org.skyscreamer.yoga.demo.util.TypeUtils.returnedClass; import java.util.List; import org.hibernate.ObjectNotFoundException; import org.skyscreamer.yoga.demo.dao.GenericDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseStatus; /** * Created by IntelliJ IDEA. User: Carter Page */ public abstract class AbstractController<T> { @Autowired GenericDao _genericDao; Class<T> _entityClass = returnedClass( getClass() ); @RequestMapping("/{id}") // @ResponseBody public T get( @PathVariable long id ) { return _genericDao.find( _entityClass, id ); } @RequestMapping // @ResponseBody public List<T> getAll() { return _genericDao.findAll(_entityClass); } @ExceptionHandler(ObjectNotFoundException.class) @ResponseStatus(value = HttpStatus.NOT_FOUND, reason = "No such resource") public void notFound() { } }