como criar um filtro java com spring mongodb e Criteria
11/05/2016
0
Boa Tarde amigos!
Estou criando um filtro no java com spring e criteria esse filtro tem que pegar dados de uma lista! vou colocar o codigo abaixo da controler e do repository o retorno na controller esta vindo vazio com os valores da lista é como se ele nao estivesse entrando dentro da lista.
Essa é minha controller
Essa a Repository que a controller esta chamando
Esse é o erro que esta dando
2016-05-11 14:14:16 INFO DashboardFiltroController:54 - [List - DashboardFiltro] - START
2016-05-11 14:14:16 INFO DashboardFiltroController:59 - [List - DashboardFiltro] - STOP
2016-05-11 14:14:20 INFO DashboardFiltroController:54 - [List - DashboardFiltro] - START
2016-05-11 14:14:20 INFO DashboardFiltroController:59 - [List - DashboardFiltro] - STOP
1452540224318
88.353.241/0001-65
Resultado da Empresa: Empresa [id=572b82f45c0e6e16352418f8, nome=Walmart, email=walmart@hotmail.com, webSite=walmart.gov, tipoInscricao=CNPJ, numeroInscricao=88.353.241/0001-65, codigoContexto=1452540224318]
2016-05-11 14:15:07 INFO DashboardFiltroController:160 - FILTRO - START
2016-05-11 14:15:07 INFO DashboardFiltroController:162 - Dashboard :DashboardFiltro [id=null, nome=null, codigoContexto=null, dtInicio=2001-01-01, dtFim=2016-05-10, status=[VALIDADO, ERRO, AGUARDOENVIO, AGUARDORETORNOENVIO, ENVIOSUCESSO], evento=[S1000, S1005, S1010, S1020, S1030, S1040, S1050, S1060, S1070, S1080, S1200, S1202, S1210, S1220, S1250, S1260, S1270, S1280, S1298, S1299, S1300, S2100, S2190, S2200, S2205, S2206, S2210, S2220, S2230, S2240, S2241, S2250, S2298, S2299, S2300, S2305, S2399, S3000, S4000, S5001, S5002, S5011, S5012], listaEmpresas=[88.353.241/0001-65]]
[5, 13, 25, 38, 50]
[1000, 1005, 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1200, 1202, 1210, 1220, 1250, 1260, 1270, 1280, 1298, 1299, 1300, 2100, 2190, 2200, 2205, 2206, 2210, 2220, 2230, 2240, 2241, 2250, 2298, 2299, 2300, 2305, 2399, 3000, 4000, 5001, 5002, 5011, 5012]
2016-05-11 14:15:07 INFO DashboardFiltroController:166 - list status :[ ]
A Liusta de status esta sendo retornada vazia!
Estou criando um filtro no java com spring e criteria esse filtro tem que pegar dados de uma lista! vou colocar o codigo abaixo da controler e do repository o retorno na controller esta vindo vazio com os valores da lista é como se ele nao estivesse entrando dentro da lista.
Essa é minha controller
import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.bson.types.ObjectId; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestBody; 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 org.springframework.web.bind.annotation.RestController; import com.esocialmatic.common.http.JsonResponse; import com.esocialmatic.common.http.JsonResponse.Status; import com.esocialmatic.esocial.entity.general.DashboardFiltro; import com.esocialmatic.esocial.entity.general.Evento; import com.esocialmatic.esocial.repository.DashboardFiltroRepository; import com.esocialmatic.esocial.repository.DashboardImplRepository; import com.esocialmatic.esocial.repository.EventoRepository; import com.esocialmatic.profile.bean.ProfileBean; import com.esocialmatic.profile.entity.Empresa; import com.esocialmatic.profile.repository.EmpresaRepository; @Controller @RestController @RequestMapping("/dashboardFiltro") public class DashboardFiltroController { private static final Logger LOGGER = Logger.getLogger(DashboardFiltroController.class); @Autowired private ProfileBean profileBean; @Autowired private DashboardImplRepository dashboardImplRepository; @RequestMapping(value = "/filtro.action", method = RequestMethod.POST, headers = "Accept=*/*", produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) public @ResponseBody JsonResponse<List<Evento>> filtro(@RequestBody DashboardFiltro dashboardFiltro){ LOGGER.info("FILTRO - START"); LOGGER.info("Dashboard :" + dashboardFiltro); final List<Evento> listStatusInt = dashboardImplRepository.getFiltro(dashboardFiltro); LOGGER.info("list status :" + listStatusInt); return new JsonResponse<List<Evento>>(Status.OK , listStatusInt); } }
Essa a Repository que a controller esta chamando
import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Repository; import com.esocialmatic.esocial.entity.general.DashboardFiltro; import com.esocialmatic.esocial.entity.general.Evento; import com.esocialmatic.esocial.entity.tipo.TipoEvento; import com.esocialmatic.esocial.entity.tipo.TipoStatus; @Repository public class DashboardImplRepository { @Autowired private MongoTemplate profileMongoTemplate; public List<Evento> getFiltro(DashboardFiltro dashboardFiltro){ Collection<Integer> listStatusInt = new ArrayList<>(); Collection<TipoStatus> listTipoStatus = dashboardFiltro.getStatus(); for (TipoStatus tipoStatus : listTipoStatus) { listStatusInt.add(tipoStatus.getNumVal()); } System.out.println(listStatusInt); Collection<Integer> listEventoInt = new ArrayList<>(); List<TipoEvento> listEventoStatus = dashboardFiltro.getEvento(); for (TipoEvento tipoEvento : listEventoStatus) { listEventoInt.add(tipoEvento.getNumVal()); } System.out.println(listEventoInt); final Criteria criteria = Criteria.where("status").in(listStatusInt); return profileMongoTemplate.find(new Query(criteria), Evento.class); } }
Esse é o erro que esta dando
2016-05-11 14:14:16 INFO DashboardFiltroController:54 - [List - DashboardFiltro] - START
2016-05-11 14:14:16 INFO DashboardFiltroController:59 - [List - DashboardFiltro] - STOP
2016-05-11 14:14:20 INFO DashboardFiltroController:54 - [List - DashboardFiltro] - START
2016-05-11 14:14:20 INFO DashboardFiltroController:59 - [List - DashboardFiltro] - STOP
1452540224318
88.353.241/0001-65
Resultado da Empresa: Empresa [id=572b82f45c0e6e16352418f8, nome=Walmart, email=walmart@hotmail.com, webSite=walmart.gov, tipoInscricao=CNPJ, numeroInscricao=88.353.241/0001-65, codigoContexto=1452540224318]
2016-05-11 14:15:07 INFO DashboardFiltroController:160 - FILTRO - START
2016-05-11 14:15:07 INFO DashboardFiltroController:162 - Dashboard :DashboardFiltro [id=null, nome=null, codigoContexto=null, dtInicio=2001-01-01, dtFim=2016-05-10, status=[VALIDADO, ERRO, AGUARDOENVIO, AGUARDORETORNOENVIO, ENVIOSUCESSO], evento=[S1000, S1005, S1010, S1020, S1030, S1040, S1050, S1060, S1070, S1080, S1200, S1202, S1210, S1220, S1250, S1260, S1270, S1280, S1298, S1299, S1300, S2100, S2190, S2200, S2205, S2206, S2210, S2220, S2230, S2240, S2241, S2250, S2298, S2299, S2300, S2305, S2399, S3000, S4000, S5001, S5002, S5011, S5012], listaEmpresas=[88.353.241/0001-65]]
[5, 13, 25, 38, 50]
[1000, 1005, 1010, 1020, 1030, 1040, 1050, 1060, 1070, 1080, 1200, 1202, 1210, 1220, 1250, 1260, 1270, 1280, 1298, 1299, 1300, 2100, 2190, 2200, 2205, 2206, 2210, 2220, 2230, 2240, 2241, 2250, 2298, 2299, 2300, 2305, 2399, 3000, 4000, 5001, 5002, 5011, 5012]
2016-05-11 14:15:07 INFO DashboardFiltroController:166 - list status :[ ]
A Liusta de status esta sendo retornada vazia!
Rodolfo Alves
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)