Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

No entity found for query

Boa tarde, estou quebrando a cabeça nesse exercicio, já tentei diversas formas e não deu certo. Recebo essa exception ao tentar adicionar o item no carrinho:

javax.persistence.NoResultException: No entity found for query
    org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:498)
    br.com.casadocodigo.loja.dao.ProdutoDAO.find(ProdutoDAO.java:31)
    br.com.casadocodigo.loja.dao.ProdutoDAO$$FastClassBySpringCGLIB$$297b3916.invoke(<generated>)
    org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
    org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:717)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
    org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98)
    org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:266)
    org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95)
    org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
    org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:653)
    br.com.casadocodigo.loja.dao.ProdutoDAO$$EnhancerBySpringCGLIB$$b1d66a50.find(<generated>)
    br.com.casadocodigo.loja.controller.CarrinhoController.criaItem(CarrinhoController.java:38)
    br.com.casadocodigo.loja.controller.CarrinhoController.add(CarrinhoController.java:29)
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    java.lang.reflect.Method.invoke(Unknown Source)
    org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:215)
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:781)
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:721)
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:83)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:943)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:877)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
    org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:863)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
    org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)

Mas ele utiliza o metodo find() do ProdutosDAO e esse metodo retorna um produto, inclusive a tela de detalhes que por sinal foi muito chata de configurar por causa do CSS, carrega a informação do produto e preços corretamente. O que devo estar fazendo errado? Será que pulei alguma configuração?

obrigado

2 respostas
solução!

Pela exception, parece que o id do produto não está chegando. Pode conferir? Imprime o valor ou faz um debug. Descobrindo isso, da uma conferida no form para ver se os parâmetros realmente estão indo.

Então Alberto, estava indo null.. era uma bobagem, no meu JSP no input que passo o ID estava passando sem uma "

<input type="hidden" value="${produto.id } name="produtoId" />

quando vi fiquei de cara hehehe, agora está funcionando.. mas a dica de fazer um sysout com o valor das variaveis foi boa. Obrigado pela atenção.