1
resposta

JSON EM BRANCO NO NAVEGADOR

Quando executo a url para poder ver o json no navegador, a unica coisa que aparece é [].

RelatoriosProdutosController

package br.com.casadocodigo.loja.controllers;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.persistence.NoResultException;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import br.com.casadocodigo.loja.dao.ProdutoDAO;
import br.com.casadocodigo.loja.models.Produto;

@Controller

public class RelatoriosProdutosController {


    @Autowired
    private ProdutoDAO produtoDao;


@RequestMapping(value = "/relatorio-produtos", method=RequestMethod.GET,produces = "application/json")
@ResponseBody
public List<Produto> detalheJson(@RequestParam(value = "dataLancamento", required = false) String dataLancamento) throws ParseException{
    if(dataLancamento != null) {
    SimpleDateFormat formatadorDeData = new SimpleDateFormat("yyyy-MM-dd");
    Date dataFormatada = formatadorDeData.parse(dataLancamento);
    Calendar data = Calendar.getInstance();
    data.setTime(dataFormatada);
        return produtoDao.findData(dataLancamento);
    }

    return produtoDao.findData(dataLancamento);
    }

    //tratamente de exceção especifica nesse controlador 
    @ExceptionHandler(NoResultException.class)public String trataDetalheNaoEcontrado(){
        return "error";
    }
}

ProdutoDAO

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();    }
1 resposta
O post foi fechado por inatividade após 3 meses. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!