RelatoriosProdutosController
@Controller
public class RelatoriosProdutosController {
@Autowired
private ProdutoDAO produtoDao;
@RequestMapping("/{dataLancamento}")
@ResponseBody
public List<Produto> detalheJson(@PathVariable("dataLancamento") String dataLancamento) throws ParseException{
SimpleDateFormat formatadorDeData = new SimpleDateFormat("yyyy-MM-dd");
Date dataFormatada = formatadorDeData.parse(dataLancamento);
Calendar data = Calendar.getInstance();
data.setTime(dataFormatada);
return produtoDao.findData(dataLancamento);
}
//tratamente de exceção especifica nesse controlador
@ExceptionHandler(NoResultException.class)public String trataDetalheNaoEcontrado(){
return "error";
}
Produtos Dao
public List<Produto> findData(String dataLancamento) {
TypedQuery<Produto> query = manager.createQuery("select distinct(p) from Produto p join fetch p.precos precos where p.dataLancamento = :dataLancamento",Produto.class)
.setParameter("dataLancamento",dataLancamento);
return query.getResultList(); }
}