Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

NullPointerException

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?

1 resposta
solução

Parece que quando nao manda data ele tenta fazer parse em nul, por isso ocorre o erro