Bom dia galera Estou recebendo um nullpointerexception quando no metodo findProdutos() da classe ProdutoDAO, nao recebe o atribulto data. Imagino que isso esta ocorrendo no "if"
@Controller
public class RelatorioProdutosController {
@Autowired
private ProdutoDAO dao;
@RequestMapping(value = "/relatorio-produtos", method = RequestMethod.GET)
@ResponseBody
public List<Produto> relatorioProdutos(@RequestParam(value = "data", required = false) String dataLancamento) throws ParseException {
List<Produto> produtos = dao.findProdutos(dataLancamento);
return produtos;
}
`
@Repository
@Transactional
public class ProdutoDAO {
@PersistenceContext
private EntityManager manager;
public List<Produto> findProdutos(String dataLancamento) throws ParseException {
System.out.println(dataLancamento);
CriteriaBuilder criteriaBuilder = manager.getCriteriaBuilder();
CriteriaQuery<Produto> query = criteriaBuilder.createQuery(Produto.class);
Root<Produto> root = query.from(Produto.class);
if (!dataLancamento.isEmpty()) {
Path<Calendar> dataPath = root.<Calendar>get("dataLancamento");
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Date date = format.parse(dataLancamento);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
Predicate predicate = criteriaBuilder.equal(dataPath, cal);
query.where(predicate);
}
TypedQuery<Produto> typedQuery = manager.createQuery(query);
return typedQuery.getResultList();
}
}
Obs.: se for informado a data, o resultado eh okay
Aguem pode me ajudar?