Hibernte com JPA - ERRo

10 respostas
leandroleo

Olá pessoal,

Estou com um probleminha chato aki.

estou fazendo uma busca usando o critéria.

eu tenho um formulario, digito o que quero e ele busca as ocorrencias.

mas…

nao funciona ele da um java.lang.NullPointerException

segue meu método

public List<Veiculo> busca(String modelo, String placa){
		CriteriaBuilder cb = manager.getCriteriaBuilder();
		CriteriaQuery<Veiculo> cq = cb.createQuery(Veiculo.class);
		Root<Veiculo> veiculo = cq.from(Veiculo.class);
		cq.select(veiculo);
                // tbl_veiculos_descricao é o campo da tabela, mas o nome do atributo da classe é apenas descrição.
                // tbl_veiculos_placa é o campo da tabela, mas o nome do atributo da classe é apenas placa.
		Predicate predicate = cb.and( 
				cb.like( veiculo.<String>get("tbl_veiculos_descricao"), "%" + modelo + "%" ), 
				cb.like( veiculo.<String>get("tbl_veiculos_placa"), "%" + placa + "%" ) );

		cq.where(predicate);
		
		TypedQuery<Veiculo> query = manager.createQuery(cq);
		List<Veiculo> veiculos = query.getResultList();
		
		return veiculos;
	}

alguem pode me ajudar ??

espero ter sido claro, brigadão"

10 Respostas

dcorteztec

Com esse metodo parece estar tudo ok, só sua action, jsp e o printStackTrace Completo.

leandroleo

Eita, ta osso viu!

dcorteztec

só falta sua action, jsp e o printStackTrace Completo, para podermos analisar melhor o erro

leandroleo
//e logo abaixo minha printStackTrace

java.lang.NullPointerException

at org.hibernate.ejb.criteria.path.AbstractPathImpl.unknownAttribute(AbstractPathImpl.java:110)

at org.hibernate.ejb.criteria.path.AbstractPathImpl.locateAttribute(AbstractPathImpl.java:218)

at org.hibernate.ejb.criteria.path.AbstractPathImpl.get(AbstractPathImpl.java:189)

at br.com.mg.frota.model.VeiculoDAO.busca(VeiculoDAO.java:28)

at br.com.mg.frota.action.BuscaVeiculosAction.execute(BuscaVeiculosAction.java:38)

at org.apache.struts.chain.commands.servlet.ExecuteAction.execute(ExecuteAction.java:58)

at org.apache.struts.chain.commands.AbstractExecuteAction.execute(AbstractExecuteAction.java:67)

at org.apache.struts.chain.commands.ActionCommandBase.execute(ActionCommandBase.java:51)

at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

at org.apache.commons.chain.generic.LookupCommand.execute(LookupCommand.java:305)

at org.apache.commons.chain.impl.ChainBase.execute(ChainBase.java:191)

at org.apache.struts.chain.ComposableRequestProcessor.process(ComposableRequestProcessor.java:283)

at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913)

at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)

at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)

at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)

at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)

at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)

at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)

at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)

at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)

at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)

at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)

at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)

at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)

at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)

at java.lang.Thread.run(Unknown Source)

[/code]

leandroleo
// meu formulario


<html:form styleClass="forms" action="/BuscaVeiculos.do" method="get">
				<table class="tbl-forms">
					<tr>
						<td><label>Modelo: </label></td>
						<td><html:text property="modelo" style=" width:200px;" /></td>

						<td><label>Placa: </label></td>
						<td><html:text property="placa" style=" width:80px;" /></td>
					</tr>
				
					<tr>
						<td><label>&nbsp;</label></td>
						<td>
							<button type="submit">Filtrar</button>
							<button type="button">Limpar Busca</button>
						</td>
					</tr>
				</table>
			</html:form>
leandroleo
// meu action

package br.com.mg.frota.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;

import br.com.mg.frota.form.BuscaVeiculosForm;
import br.com.mg.frota.model.VeiculoDAO;

public class BuscaVeiculosAction extends Action {

	public ActionForward execute(
			ActionMapping mapping, 
			ActionForm form, 
			HttpServletRequest request, 
			HttpServletResponse response) throws Exception {
		
		List veiculos = null;

		ActionMessages erros = new ActionMessages();
		
		BuscaVeiculosForm buscaVeiculosFrom = (BuscaVeiculosForm) form;
		
		try{
			VeiculoDAO veiculoDAO = new VeiculoDAO();
			
			String modelo = buscaVeiculosFrom.getModelo();
			String placa = buscaVeiculosFrom.getPlaca();
// chamada do método busca
			veiculos = veiculoDAO.busca(modelo, placa);
			request.setAttribute("veiculoListBean", veiculos);
		}catch(Exception e){
			e.printStackTrace();
			erros.add(ActionMessages.GLOBAL_MESSAGE,
					new ActionMessage("errors.veiculos.lista"));
			getServlet().log("Erro carregando a lista de veículos",e);
		}
		
		if(!erros.isEmpty()){
			saveErrors(request, erros);
			return (mapping.findForward("failure"));
		}else{
			return (mapping.findForward("success"));
		}	
	}
}
dcorteztec

O problema eu acho que esta jsp, vc “setou” request.setAttribute("veiculoListBean", veiculos);
então na sua jsp seus atributos deveriam estar assim

Tenta ai, não lembro muito de struts 1

leandroleo

ok, vou tentar … obrigado!

leandroleo

Opa!

Moss c acredita que o erro era um jar errado! aff

vacilei e deixou 2 jar’s iguais mas com versões diferentes!

obrigado!

dcorteztec

Boa é sempre assim é o q vc acha q ta certo vlw

Criado 15 de abril de 2011
Ultima resposta 25 de abr. de 2011
Respostas 10
Participantes 2