Problemas para listar um cadastro - JSF1.2 - Hibernate

59 respostas
J

Esfou com problemas para listar um cadastro … é o campo Cidade que esta errado …
Alguem pode me ajudar ?

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%>
<%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
	<link href="../../style/yui-datatable.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}../../style/yiu-datatable.css">
	<script type="text/javascript" src="/jsf/resources/jquery.maskedinput-1.2.1.js"></script>
</head>

<body>
<f:view>
	
	<h:form>
		<a4j:keepAlive beanName="pessoaMB" />
		<h:messages/>
	
		 <fieldset>
	        <legend>Pesquisa de Pessoas</legend>
			<h:panelGrid columns="5" style=" width : 599px;">
			
			    <h:outputLabel for="nomeLabel" value="Digite o nome: " />
			                                                  
				<h:inputText id="nomeInput" value="#{pessoaMB.desc}" style=" width : 321px;" />
 
				<h:commandButton value="Pesquisar" action="#{pessoaMB.pesquisaPessoas}" styleClass="submit" />
				<h:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="submit"/>
    		</h:panelGrid>
			</fieldset>
			<br />
			<rich:dataTable value="#{pessoaMB.lista}" var="fisica" rows="3" id="fisicas" styleClass="yui-datatable-theme" rendered="#{pessoaMB.listaFieldSet}" width="55%" cellspacing="0" cellpadding="0" border="1">	
				
				<h:column>
					<f:facet name="header">
						<h:outputText value="Codigo Cidade" />
					</f:facet>
					<h:outputText value="#{fisica.cidade.id}" />
				</h:column>
				
				
				
				
				<h:column>
					<f:facet name="header">
						<h:outputText value="NOME" />
					</f:facet>
					<h:outputText value="#{fisica.nome}" />
				</h:column>
	
				<h:column>
					<f:facet name="header">
						<h:outputText value="E-MAIL" />
					</f:facet>
					<h:outputText value="#{fisica.email}" />
				</h:column>
	
				<h:column>
					<f:facet name="header">
						<h:outputText value="CPF" />
					</f:facet>
					<h:outputText value="#{fisica.cpf}" />
				</h:column>
			
				<h:column>
					<f:facet name="header">
						<h:outputText value="DATA NASC." />
					</f:facet>
					<h:outputText value="#{fisica.dataNascimento}">
						<f:convertDateTime pattern="dd/MM/yyyy" />
					</h:outputText>
				</h:column>
			 
				<h:column>
					<f:facet name="header">
						<h:outputText value="CELULAR" />
					</f:facet>
					<h:outputText value="#{fisica.telefoneCelular}" />
				</h:column>
	
				<h:column>
					<f:facet name="header">
						<h:outputText value="Exclusão"/>
					</f:facet>
			
					<a4j:commandLink reRender="panelGridInputs">
						<h:outputText value="Selecionar"/>
						<f:setPropertyActionListener  value="#{fisica}" target="#{pessoaMB.pessoa}"/>
					</a4j:commandLink>
			
				</h:column>
	 			
		 		<f:facet name="footer">
					<rich:datascroller maxPages="3"/>
				</f:facet>
			</rich:dataTable>
			
			
			<rich:messages/>
			
    	    <a4j:region id="regiaoAjax">
			 	<a4j:status id="sts">
	            	<f:facet name="start">
	            		<h:graphicImage value="/images/ajax-loader.gif" />
	               	</f:facet>
	            </a4j:status>
	        </a4j:region>
	        
			<h:panelGrid columns="2" id="panelGridInputs" rendered="#{pessoaMB.listaFieldSet}">
				<h:outputLabel for="nome" value="Nome "  />
				<h:inputText id="nome" value="#{pessoaMB.pessoa.nome}" style=" width : 254px;"/>
				
				<h:outputLabel for="email" value="E-mail "  />
				<h:inputText id="email" value="#{pessoaMB.pessoa.email}" style=" width : 249px;">
					<f:validator validatorId="emailValidator"/>
				</h:inputText>
				
				<h:outputLabel for="cpf" value="CPF "  />
				<h:inputText id="cpf" validatorMessage="CPF inválido!" value="#{pessoaMB.pessoa.cpf}" size="60" style=" width : 106px;">
					<rich:jQuery selector="#cpf" query="mask('[CPF removido]')" timing="onload"/>
					<stella:validateCPF formatted="true"/>
				</h:inputText>
				
				<h:outputLabel for="senha" value="Senha "  />
				<h:inputSecret id="senha" redisplay="true" value="#{pessoaMB.pessoa.senha}" size="80"/>
				
				<h:outputLabel for="dataNasc" value="Data Nascimento: "  />
				<h:inputText id="dataNasc" validatorMessage="Data de nascimento com formato inválido!" value="#{pessoaMB.pessoa.dataNascimento}" size="60" style=" width : 75px;">
					<f:convertDateTime pattern="dd/MM/yyyy" />
					<rich:jQuery selector="#dataNasc" query="mask('99/99/9999')" timing="onload"/>
				</h:inputText> 
					
				<h:outputLabel for="telCel" value="Tel. Celular "  />
				<h:inputText id="telCel" value="#{pessoaMB.pessoa.telefoneCelular}">
					<rich:jQuery selector="#telCel" query="mask('([telefone removido]')" timing="onload"/>
				</h:inputText>
				</h:panelGrid>
				
				<fieldset style="width: 532px; ">
	        <legend>Busca Cidades</legend>
					<h:panelGrid columns="5">
					<h:outputLabel for="consultaCidade" value="Consulta Cidade"/>
					<h:inputText id="idCidade" value="#{pessoaMB.cidade.id}" size="10">

					</h:inputText>

					<h:outputLink value="#" id="link"
						onclick="NovaJanela('../pages/cadastroPessoa/jan2.jsf','Consultas','800','400','yes');return false">
						<h:graphicImage value="/images/loupe_petit.bmp" />
					</h:outputLink>


					<h:inputText id="nomeCidade"
						size="10" style="width: 317px; " disabled="true"/>
						
						<h:inputText id="uf"  size="10" style="width: 36px; " disabled="true"/>
						
						</h:panelGrid>

                       </fieldset>
				
				
				
				
				<a4j:commandButton value="Atualizar" action="#{pessoaMB.merge}" styleClass="botoes" status="sts" reRender="fisicas"/>
				<a4j:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="botoes"/>
			
		</fieldset>
				
			
			
			
			
			</h:form>


</f:view>
</body>
</html>

eis os Códigos java Manage Bean:

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.serjaum.dao.PessoaDAO;
import br.com.serjaum.facade.PessoaFacade;
import br.com.serjaum.facade.PessoaFacadeImpl;
import br.com.serjaum.modelo.Cidade;
import br.com.serjaum.modelo.Pessoa;
import br.com.serjaum.util.HibernateUtil;

public class PessoaMB implements Serializable {
	
	private static final long serialVersionUID = -333995781063775201L;


	private Pessoa pessoa = new Pessoa();
	private Cidade cidade = new Cidade();


	private PessoaDAO auxSession;
    private String nome;
    private List<Pessoa> lista = new ArrayList<Pessoa>();
    private String desc = "";

    
    private boolean listaFieldSet = false;
    
    private boolean fildSetPessoa = false;




	public Cidade getCidade() {
		return cidade;
	}

	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}

	public boolean isFildSetPessoa() {
		return fildSetPessoa;
	}

	public void setFildSetPessoa(boolean fildSetPessoa) {
		this.fildSetPessoa = fildSetPessoa;
	}

	public boolean isListaFieldSet()
	{
		return listaFieldSet;
	}

	public void setListaFieldSet(boolean listaFieldSet)
	{
		this.listaFieldSet = listaFieldSet;
	}


	private int id;


	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public PessoaDAO getAuxSession() {
		return auxSession;
	}

	public void setAuxSession(PessoaDAO auxSession) {
		this.auxSession = auxSession;
	}


	public PessoaMB(){
		System.out.println(" >>>>>>>>>>>>>>>>>>>> Contrutor do PESSOA_MB <<<<<<<<<<<<<<<<<<");
		
		if(this.pessoa == null){
			this.pessoa = new Pessoa(); 
		}
	}
	
	public String login() throws Exception{
        boolean logado = false;
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        PessoaFacade pessoaService = new PessoaFacadeImpl();
		
        logado = pessoaService.autentica(this.pessoa.getEmail(), this.pessoa.getSenha());
        
        if(logado){
        	Pessoa dados = (Pessoa)session.getAttribute("usuario");
        	nome = dados.getNome().toString();
            session.setAttribute("user",nome); 
            rp.sendRedirect(rq.getContextPath() + "/pages/index.jsf");
            Pessoa auxPessoa = new Pessoa();
            return "successo";
        }else{
            session.setAttribute("user", null);
            session.removeAttribute("user");
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
            return "failurer";
        }
    }
	
	public String logout() {
		HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
		session.invalidate();
		try {
			rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return "logoutOk";
	}
	
	public String save(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
				
		pessoaService.salva(this.pessoa);
		
		this.pessoa = new Pessoa(); 
		return "cadastraSucesso";
	}

	public String delete(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
		this.pessoa.setId(id);
		pessoaService.remove(this.pessoa);
		this.pessoa = new Pessoa(); 
		
		return "removeSucesso";
	}
	
	public String merge(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
		pessoaService.atualiza(this.pessoa);
		this.pessoa = new Pessoa(); 

		return "atualizaSucesso";
	}
	
	public String load(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
		this.pessoa = pessoaService.procura(this.id);
		
		return "pesquisaSucesso";
	}

	public String pesquisaByNome(){
		PessoaFacadeImpl pessoaService = new PessoaFacadeImpl();
		this.pessoa = pessoaService.procuraByNome(this.pessoa.getNome());
		
		return "pesquisaByNomeSucesso";
	}
	
	public List<Pessoa> getPessoas(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();		
		
		return pessoaService.lista();
	}

	public List<Pessoa> pessoasByNome(String nome){ 
		PessoaFacade pessoaService = new PessoaFacadeImpl();

		List<Pessoa> lista = pessoaService.pesquisaPessoasByNome(nome);

		return lista;
	}
	
	public String pesquisaPessoas(){
		
		lista = pessoasByNome(desc);
	    if (lista != null || lista.size() > 0){
			listaFieldSet = true ;
		    }else 
		    	if (lista.size()== 0){ 
		            listaFieldSet = false;
		    	}


		
		return null;
	}

	

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	/**
	 * @param lista the lista to set
	 */
	public void setLista(List<Pessoa> lista) {
		this.lista = lista;
	}
	
	public String getDesc() {
		return desc;
	}

	/**
	 * @param desc the desc to set
	 */
	public void setDesc(String desc) {
		this.desc = desc;
	}

	public List<Pessoa> listaPessoasPorNome(String nome){
		
		Session session = HibernateUtil.getSession();
		
		Query q = session.createQuery(" from Pessoa t where t.nome like :nome ");
		
		q.setParameter("nome", "%" +nome+ "%");
		
		List<Pessoa> pessoa = q.list();
		
	     return pessoa;	
	}
	

	

	
	   public List<Pessoa> getLista() {
			// if (desc.equals("")){
			//	 lista = listaTodosLivros();
				 return lista;
			// }else{
			//	  return lista;
			  // }
	}
	   
		public void prerender()
		{
			if (lista == null || lista.size() == 0)
				listaFieldSet = false;
			else
				listaFieldSet = true;
		}
		


}

59 Respostas

C

Qual o erro gerado?

J

… então não da erro nenhum, mas o campo código da cidade não aparece … os outros demais campos são listados… aqui vai o entity, camada modelo, entidade Pessoa e Cidade:

Pessoa:
package br.com.serjaum.modelo;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;



@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
    
    private static final long serialVersionUID = 2174678509151116408L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="pessoa_id")
    private int id;
    
    
    @ManyToOne
    @JoinColumn(name="COD_CIDADE")
    private Cidade cidade;




    @Column(name="nome")
    private String nome; 
    
    @Column(name="email")
    private String email;
    
    @Column(name="senha")
    private String senha;

    @Column(name="cpf")
    private String cpf;
    
    @Temporal(TemporalType.DATE)
    @Column(name="data_nasc")
    private Date dataNascimento;

    @Column(name="tel_cel")
    private String telefoneCelular;

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    


    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        System.out.println("Pessoa >> nome : "  + this.nome);
        
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public String getTelefoneCelular() {
        return telefoneCelular;
    }

    public void setTelefoneCelular(String telefoneCelular) {
        this.telefoneCelular = telefoneCelular;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    @Override
    public int hashCode(){
        return this.nome.length() * 23;
    }
    
    @Override
    public String toString(){
        return nome; 
    }

    @Override
    public boolean equals(Object obj){
        if( (obj instanceof Pessoa) && ( ((Pessoa)obj).getCpf().equals(this.cpf)) ){
            return true; 
        }else{
            return false; 
        }
    }
}

Cidade:

package br.com.serjaum.modelo;

import java.io.Serializable;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;


@Entity
@Table(name="cidade")
public class Cidade implements Serializable{
	
	private static final long serialVersionUID = 2174678509151116408L;

	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="idcidade")
	private int id;
	
	@Column(name="nomecidade")
	private String nome; 
	
	@Column(name="uf")
	private String uf;


    @OneToMany(mappedBy = "cidade")
    private List<Pessoa> pessoas;





	public List<Pessoa> getPessoas() {
		return pessoas;
	}

	public void setPessoas(List<Pessoa> pessoas) {
		this.pessoas = pessoas;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public String getUf() {
		return uf;
	}

	public void setUf(String uf) {
		this.uf = uf;
	}
}

… não sei mas acho que o meu Workspace esta bichado porque acho que já deveria estar listando a entidade Cidade e no XML do Hibernate eu adicionei o Entity Cidade como Pessoa …

Eis o XM:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
 <session-factory>
	  <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
	  <property name="hibernate.connection.url">jdbc:mysql://localhost/jsf</property>
	  <property name="hibernate.connection.username">root</property>
	  <property name="hibernate.connection.password">root</property>
	  <property name="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialect</property> 
	  <property name="hibernate.format_sql">true</property>
	  <property name="hibernate.show_sql">true</property>
	  <property name="hibernate.hbm2ddl.auto">true</property>
	  <property name="hibernate.c3p0.acquire_increment">1</property>
	  <property name="hibernate.c3p0.idle_test_period">100</property>
	  <property name="hibernate.c3p0.max_size">10</property>
	  <property name="hibernate.c3p0.max_statements">0</property>
	  <property name="hibernate.c3p0.min_size">5</property>
	  <property name="hibernate.c3p0.timeout">100</property>
	 
	  <mapping class="br.com.serjaum.modelo.Pessoa"/>
	  <mapping class="br.com.serjaum.modelo.Cidade"/>
 </session-factory>
</hibernate-configuration>
J

… no caso o pessoaMB.cidade.id, não aparece, entendeu ?! em uma lista de cadastro …

J

… se quiser eu mando a aplicaçãozinha, por email … não tem problema é só um teste …mas é um CRUD muito bom!

C

Voce olhou no banco de dados se a tabela cidade esta preenchida e vinculada com pessoa?

J

Sim, esta vinculado, o banco esta perfeito…

C

Se dentro de pessoa tem uma cidade:

public class Pessoa {
     private Cidade cidade;
}

public class CIdade {
     .....
}

Entao dentro do seu xhtml voce deveria parsear pelos obj:

value="#{pessoaMB.pessoa.cidade.id}"
J

… a pagina que esta dando vazio o campo e o procedimento é esse:

<h:inputText id="idCidad" value="#{pessoaMB.cidade.id}" size="10">

                    </h:inputText>

 o **pessoaMB.cidade.id**, este campo, não aparece após pesquisa ... entendeu ?
J

se colocar pessoaMB.pessoa.cidade.id, da o seguinte erro:

org.apache.jasper.el.JspPropertyNotFoundException: /pages/cadastroPessoa/pesquisaPessoaGrid.jsp(166,5) '#{pessoaMB.pessoa.cidade.id}' Target Unreachable, 'cidade' returned null
    at org.apache.jasper.el.JspValueExpression.getType(JspValueExpression.java:66)
    at org.apache.myfaces.shared_impl.renderkit._SharedRendererUtils.findUIOutputConverter(_SharedRendererUtils.java:58)
    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.findUIOutputConverter(RendererUtils.java:391)
    at org.apache.myfaces.shared_impl.renderkit.RendererUtils.getConvertedUIOutputValue(RendererUtils.java:752)
    at org.apache.myfaces.shared_impl.renderkit.html.HtmlTextRendererBase.getConvertedValue(HtmlTextRendererBase.java:219)
    at javax.faces.component.UIInput.getConvertedValue(UIInput.java:942)
    at javax.faces.component.UIInput.validate(UIInput.java:868)
    at javax.faces.component.UIInput.executeValidate(UIInput.java:1072)
    at javax.faces.component.UIInput.processValidators(UIInput.java:672)
    at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1061)
    at javax.faces.component.UIForm.processValidators(UIForm.java:234)
    at org.ajax4jsf.component.AjaxViewRoot$3.invokeContextCallback(AjaxViewRoot.java:439)
    at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:238)
    at org.ajax4jsf.component.AjaxViewRoot.processValidators(AjaxViewRoot.java:455)
    at org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:32)
    at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
    at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
    at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:103)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
    at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
    at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
    at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at br.com.serjaum.filtro.AuthFilter.doFilter(AuthFilter.java:26)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)
C

O erro fala que cidade esta null. entao instancie ela.

public PessoaMB(){
		System.out.println(" >>>>>>>>>>>>>>>>>>>> Contrutor do PESSOA_MB <<<<<<<<<<<<<<<<<<");
		
		if(this.pessoa == null){
			this.pessoa = new Pessoa(); 
			this.pessoa.cidade = new Cidade(); 
		}
	}
J

instanciei desta forma:

private Pessoa pessoa = new Pessoa();
    private Cidade cidade = new Cidade();

   fiz assim e mesmo não retorna o id da entidade cidade ...

como ficaria do teu jeito porque tem que criar um metodo …

C

Editei a minha ultima resposta.

J

Alguém pode me ajudar ?
Por Favor, os mestres de plantão …

M

Tenta anotar o seu managed bean como @ViewScoped

J

não resolveu…

C

@javaDesk, faça dessa forma que passei nessa resposta.

E para evitar o erro:

Faça isso:

J

… certo, mas eu já fiz isso e não deu certo …
… veja novamente como esta meu ManageBean:

package br.com.serjaum.mb;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.serjaum.dao.PessoaDAO;
import br.com.serjaum.facade.PessoaFacade;
import br.com.serjaum.facade.PessoaFacadeImpl;
import br.com.serjaum.modelo.Cidade;
import br.com.serjaum.modelo.Pessoa;
import br.com.serjaum.util.HibernateUtil;



//@ManagedBean(name="pessoaMB")
@ViewScoped
public class PessoaMB implements Serializable {
    
    private static final long serialVersionUID = -333995781063775201L;


    private Pessoa pessoa = new Pessoa();
    private Cidade cidade = new Cidade();
    


    private PessoaDAO auxSession;
    private String nome;
    private List<Pessoa> lista = new ArrayList<Pessoa>();
    private String desc = "";

    
    private boolean listaFieldSet = false;
    
    private boolean fildSetPessoa = false;
    


    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public boolean isFildSetPessoa() {
        return fildSetPessoa;
    }

    public void setFildSetPessoa(boolean fildSetPessoa) {
        this.fildSetPessoa = fildSetPessoa;
    }

    public boolean isListaFieldSet()
    {
        return listaFieldSet;
    }

    public void setListaFieldSet(boolean listaFieldSet)
    {
        this.listaFieldSet = listaFieldSet;
    }


    private int id;


    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public PessoaDAO getAuxSession() {
        return auxSession;
    }

    public void setAuxSession(PessoaDAO auxSession) {
        this.auxSession = auxSession;
    }


    public PessoaMB(){
        System.out.println(" >>>>>>>>>>>>>>>>>>>> Construtor do PESSOA_MB <<<<<<<<<<<<<<<<<<");
        
        if(this.pessoa == null){
            this.pessoa = new Pessoa();
            this.pessoa.cidade = new Cidade();
        }
    }
    
    public String login() throws Exception{
        boolean logado = false;
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        
        logado = pessoaService.autentica(this.pessoa.getEmail(), this.pessoa.getSenha());
        
        if(logado){
            Pessoa dados = (Pessoa)session.getAttribute("usuario");
            nome = dados.getNome().toString();
            session.setAttribute("user",nome); 
            rp.sendRedirect(rq.getContextPath() + "/pages/index.jsf");
            Pessoa auxPessoa = new Pessoa();
            return "successo";
        }else{
            session.setAttribute("user", null);
            session.removeAttribute("user");
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
            return "failurer";
        }
    }
    
    public String logout() {
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        FacesContext facesContext = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
        session.invalidate();
        try {
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return "logoutOk";
    }
    
    public String save(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
                
        pessoaService.salva(this.pessoa);
        
        this.pessoa = new Pessoa(); 
        return "cadastraSucesso";
    }

    public String delete(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        this.pessoa.setId(id);
        pessoaService.remove(this.pessoa);
        this.pessoa = new Pessoa(); 
        
        return "removeSucesso";
    }
    
    public String merge(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        pessoaService.atualiza(this.pessoa);
        this.pessoa = new Pessoa(); 

        return "atualizaSucesso";
    }
    
    public String load(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        this.pessoa = pessoaService.procura(this.id);
        
        return "pesquisaSucesso";
    }

    public String pesquisaByNome(){
        PessoaFacadeImpl pessoaService = new PessoaFacadeImpl();
        this.pessoa = pessoaService.procuraByNome(this.pessoa.getNome());
        
        return "pesquisaByNomeSucesso";
    }
    
    public List<Pessoa> getPessoas(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();        
        
        return pessoaService.lista();
    }

    public List<Pessoa> pessoasByNome(String nome){ 
        PessoaFacade pessoaService = new PessoaFacadeImpl();

        List<Pessoa> lista = pessoaService.pesquisaPessoasByNome(nome);

        return lista;
    }
    
    public String pesquisaPessoas(){
        
        lista = pessoasByNome(desc);
        if (lista != null || lista.size() > 0){
            listaFieldSet = true ;
            }else 
                if (lista.size()== 0){ 
                    listaFieldSet = false;
                }


        
        return null;
    }

    

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    /**
     * @param lista the lista to set
     */
    public void setLista(List<Pessoa> lista) {
        this.lista = lista;
    }
    
    public String getDesc() {
        return desc;
    }

    /**
     * @param desc the desc to set
     */
    public void setDesc(String desc) {
        this.desc = desc;
    }

    public List<Pessoa> listaPessoasPorNome(String nome){
        
        Session session = HibernateUtil.getSession();
        
        Query q = session.createQuery(" from Pessoa t where t.nome like :nome ");
        
        q.setParameter("nome", "%" +nome+ "%");
        
        List<Pessoa> pessoa = q.list();
        
         return pessoa;    
    }
    

    

    
       public List<Pessoa> getLista() {
            // if (desc.equals("")){
            //     lista = listaTodosLivros();
                 return lista;
            // }else{
            //      return lista;
              // }
    }
       
        public void prerender()
        {
            if (lista == null || lista.size() == 0)
                listaFieldSet = false;
            else
                listaFieldSet = true;
        }
        


}
J

no Bean Pessoa, esta assim:

package br.com.serjaum.modelo;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;



@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
    
    private static final long serialVersionUID = 2174678509151116408L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    @Column(name="pessoa_id")
    private int id;
    
    
    @ManyToOne
    @JoinColumn(name="COD_CIDADE")
    public Cidade cidade;




    @Column(name="nome")
    private String nome; 
    
    @Column(name="email")
    private String email;
    
    @Column(name="senha")
    private String senha;

    @Column(name="cpf")
    private String cpf;
    
    @Temporal(TemporalType.DATE)
    @Column(name="data_nasc")
    private Date dataNascimento;

    @Column(name="tel_cel")
    private String telefoneCelular;

    public void setId(int id) {
        this.id = id;
    }

    public int getId() {
        return id;
    }

    


    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        System.out.println("Pessoa >> nome : "  + this.nome);
        
        this.nome = nome;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getCpf() {
        return cpf;
    }

    public void setCpf(String cpf) {
        this.cpf = cpf;
    }

    public Date getDataNascimento() {
        return dataNascimento;
    }

    public void setDataNascimento(Date dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    public String getTelefoneCelular() {
        return telefoneCelular;
    }

    public void setTelefoneCelular(String telefoneCelular) {
        this.telefoneCelular = telefoneCelular;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }

    @Override
    public int hashCode(){
        return this.nome.length() * 23;
    }
    
    @Override
    public String toString(){
        return nome; 
    }

    @Override
    public boolean equals(Object obj){
        if( (obj instanceof Pessoa) && ( ((Pessoa)obj).getCpf().equals(this.cpf)) ){
            return true; 
        }else{
            return false; 
        }
    }
}
C

Altere isso:

para:

private Pessoa pessoa;

Isso:

para:

public Pessoa getPessoa() {
        if(this.pessoa == null){
            this.pessoa = new Pessoa();
            this.pessoa.cidade = new Cidade();
        }
        return pessoa;
    }

E isso:

para:

public PessoaMB(){
        
    }
J

… certo, mas ainda o campo:

<h:inputText id="idCidad" value="#{pessoaMB.pessoa.cidade.idcidade}" size="10">

                    </h:inputText>

… não aparece o código da Cidade … aqui esta novamente meu manageBean para você conferir …

package br.com.serjaum.mb;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.serjaum.dao.PessoaDAO;
import br.com.serjaum.facade.PessoaFacade;
import br.com.serjaum.facade.PessoaFacadeImpl;
import br.com.serjaum.modelo.Cidade;
import br.com.serjaum.modelo.Pessoa;
import br.com.serjaum.util.HibernateUtil;



//@ManagedBean(name="pessoaMB")
@ViewScoped
public class PessoaMB implements Serializable {
    
    private static final long serialVersionUID = -333995781063775201L;


    private Pessoa pessoa;
    private Cidade cidade;
    





    private PessoaDAO auxSession;
    private String nome;
    private List<Pessoa> lista = new ArrayList<Pessoa>();
    private String desc = "";

    
    private boolean listaFieldSet = false;
    
    private boolean fildSetPessoa = false;
    



    public boolean isFildSetPessoa() {
        return fildSetPessoa;
    }

    public void setFildSetPessoa(boolean fildSetPessoa) {
        this.fildSetPessoa = fildSetPessoa;
    }

    public boolean isListaFieldSet()
    {
        return listaFieldSet;
    }

    public void setListaFieldSet(boolean listaFieldSet)
    {
        this.listaFieldSet = listaFieldSet;
    }


    private int id;


    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public PessoaDAO getAuxSession() {
        return auxSession;
    }

    public void setAuxSession(PessoaDAO auxSession) {
        this.auxSession = auxSession;
    }


    public PessoaMB(){
        //System.out.println(" >>>>>>>>>>>>>>>>>>>> Construtor do PESSOA_MB <<<<<<<<<<<<<<<<<<");
        

    }
    
    public String login() throws Exception{
        boolean logado = false;
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        
        logado = pessoaService.autentica(this.pessoa.getEmail(), this.pessoa.getSenha());
        
        if(logado){
            Pessoa dados = (Pessoa)session.getAttribute("usuario");
            nome = dados.getNome().toString();
            session.setAttribute("user",nome); 
            rp.sendRedirect(rq.getContextPath() + "/pages/index.jsf");
            Pessoa auxPessoa = new Pessoa();
            return "successo";
        }else{
            session.setAttribute("user", null);
            session.removeAttribute("user");
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
            return "failurer";
        }
    }
    
    public String logout() {
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        FacesContext facesContext = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
        session.invalidate();
        try {
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return "logoutOk";
    }
    
    public String save(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
                
        pessoaService.salva(this.pessoa);
        
        this.pessoa = new Pessoa(); 
        return "cadastraSucesso";
    }

    public String delete(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        this.pessoa.setId(id);
        pessoaService.remove(this.pessoa);
        this.pessoa = new Pessoa(); 
        
        return "removeSucesso";
    }
    
    public String merge(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        pessoaService.atualiza(this.pessoa);
        this.pessoa = new Pessoa(); 

        return "atualizaSucesso";
    }
    
    public String load(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        this.pessoa = pessoaService.procura(this.id);
        
        return "pesquisaSucesso";
    }

    public String pesquisaByNome(){
        PessoaFacadeImpl pessoaService = new PessoaFacadeImpl();
        this.pessoa = pessoaService.procuraByNome(this.pessoa.getNome());
        
        return "pesquisaByNomeSucesso";
    }
    
    public List<Pessoa> getPessoas(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();        
        
        return pessoaService.lista();
    }

    public List<Pessoa> pessoasByNome(String nome){ 
        PessoaFacade pessoaService = new PessoaFacadeImpl();

        List<Pessoa> lista = pessoaService.pesquisaPessoasByNome(nome);

        return lista;
    }
    
    public String pesquisaPessoas(){
        
        lista = pessoasByNome(desc);
        if (lista != null || lista.size() > 0){
            listaFieldSet = true ;
            }else 
                if (lista.size()== 0){ 
                    listaFieldSet = false;
                }


        
        return null;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public Pessoa getPessoa() {
        if(this.pessoa == null){
            this.pessoa = new Pessoa();
            this.pessoa.cidade = new Cidade();
        }
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    /**
     * @param lista the lista to set
     */
    public void setLista(List<Pessoa> lista) {
        this.lista = lista;
    }
    
    public String getDesc() {
        return desc;
    }

    /**
     * @param desc the desc to set
     */
    public void setDesc(String desc) {
        this.desc = desc;
    }

    public List<Pessoa> listaPessoasPorNome(String nome){
        
        Session session = HibernateUtil.getSession();
        
        Query q = session.createQuery(" from Pessoa t where t.nome like :nome ");
        
        q.setParameter("nome", "%" +nome+ "%");
        
        List<Pessoa> pessoa = q.list();
        
         return pessoa;    
    }
    

    

    
       public List<Pessoa> getLista() {
            // if (desc.equals("")){
            //     lista = listaTodosLivros();
                 return lista;
            // }else{
            //      return lista;
              // }
    }
       
        public void prerender()
        {
            if (lista == null || lista.size() == 0)
                listaFieldSet = false;
            else
                listaFieldSet = true;
        }
        


}
J

Até por enquanto, Obrigado por ajudar!

C

Coloque um breakpoint no metodo getPessoa, faça a pesquisa e depois selecione e veja se o objeto Pessoa esta preenchido.

J

… fiz isso e na pesquisa, não acessa o método…

J

… só na hora de logar que ele acessa o metodo getPessoa()…
e na hora de pesquisar ele não acessa o o metodo…

J

… então … para cadastrar ele cadastra sem problemas … o meu problema é só na seleção do grid para o cadastro para atualizar … duvida é só essa … não estou conseguindo resolver cara … eu não tenho tanta experiência com Hibernate …se puder me ajudar ficarei muito grato.

J

… alguém pode me ajudar ?! é só uma consulta …

L

coloca a página completa

J

ok:
… é uma consulta aqui em cima e mais para baixo temos um cadastro sendo selecionando por esse rich:dataTable:
… no banco são duas tabelas com relacionamento, Pessoa e Cidade onde Pessoa possui relacionamento ManyToOne …
… essa busca funciona só com dados de Pessoa, mas não trás idCidade: codigo da cidade, entendeu ? que esta logo abaixo de tudo… em Busca Cidades …, manageBean: pessoaMB.pessoa.cidade.id, pessoaMB.pessoa.cidade.nome, pessoaMB.pessoa.cidade.uf

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%>
<%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../style/yui-datatable.css" rel="stylesheet" type="text/css">
    <%-- <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}../../style/yiu-datatable.css"> --%>
    <script type="text/javascript"  src="/jsf/resources/jquery.maskedinput-1.2.1.js"></script>
    <script>
    window.open(url, '_blank', 'location=yes', 'clearcache=yes');
    var 
    win = null;
    janela2 = null;
    function NovaJanela(pagina,nome,w,h,scroll){
    LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
    TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
    settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
    win = window.open(pagina,nome,settings);
    }

    </script>
</head>

<body>
<f:view>
    
    <h:form id="f1" prependId="false">
        <a4j:keepAlive beanName="pessoaMB" />
        <h:messages/>
    
         <fieldset>
            <legend>Pesquisa de Pessoas</legend>
            <h:panelGrid columns="5" style=" width : 599px;">
            
                <h:outputLabel for="nomeLabel" value="Digite o nome: " />
                                                              
                <h:inputText id="nomeInput" value="#{pessoaMB.desc}" style=" width : 321px;" />
 
                <h:commandButton value="Pesquisar" action="#{pessoaMB.pesquisaPessoas}" styleClass="submit" />
                <h:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="submit"/>
            </h:panelGrid>
            </fieldset>
            <br />
            <rich:dataTable value="#{pessoaMB.lista}" var="fisica" rows="3" id="fisicas" styleClass="yui-datatable-theme" rendered="#{pessoaMB.listaFieldSet}" width="55%" cellspacing="0" cellpadding="0" border="1">    
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Codigo Cidade" />
                    </f:facet>
                    <h:outputText value="#{fisica.cidade.id}" />
                </h:column>
                
                
                
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="NOME" />
                    </f:facet>
                    <h:outputText value="#{fisica.nome}" />
                </h:column>
    
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="E-MAIL" />
                    </f:facet>
                    <h:outputText value="#{fisica.email}" />
                </h:column>
    
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="CPF" />
                    </f:facet>
                    <h:outputText value="#{fisica.cpf}" />
                </h:column>
            
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="DATA NASC." />
                    </f:facet>
                    <h:outputText value="#{fisica.dataNascimento}">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>
                </h:column>
             
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="CELULAR" />
                    </f:facet>
                    <h:outputText value="#{fisica.telefoneCelular}" />
                </h:column>
    
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Selecionar"/>
                    </f:facet>
            
                    <a4j:commandLink reRender="panelGridInputs">
                        <h:outputText value="Selecionar"/>
                        <f:setPropertyActionListener  value="#{fisica}" target="#{pessoaMB.pessoa}"/>
                    </a4j:commandLink>
            
                </h:column>
                 
                 <f:facet name="footer">
                    <rich:datascroller maxPages="3"/>
                </f:facet>
            </rich:dataTable>
            
            
            <rich:messages/>
            
            <a4j:region id="regiaoAjax">
                 <a4j:status id="sts">
                    <f:facet name="start">
                        <h:graphicImage value="/images/ajax-loader.gif" />
                       </f:facet>
                </a4j:status>
            </a4j:region>
            
            <h:panelGrid columns="2" id="panelGridInputs" rendered="#{pessoaMB.listaFieldSet}">
                <h:outputLabel for="nome" value="Nome "  />
                <h:inputText id="nome" value="#{pessoaMB.pessoa.nome}" style=" width : 254px;"/>
                
                <h:outputLabel for="email" value="E-mail "  />
                <h:inputText id="email" value="#{pessoaMB.pessoa.email}" style=" width : 249px;">
                    <f:validator validatorId="emailValidator"/>
                </h:inputText>
                
                <h:outputLabel for="cpf" value="CPF "  />
                <h:inputText id="cpf" validatorMessage="CPF inválido!" value="#{pessoaMB.pessoa.cpf}" size="60" style=" width : 106px;">
                    <rich:jQuery selector="#cpf" query="mask('[CPF removido]')" timing="onload"/>
                    <stella:validateCPF formatted="true"/>
                </h:inputText>
                
                <h:outputLabel for="senha" value="Senha "  />
                <h:inputSecret id="senha" redisplay="true" value="#{pessoaMB.pessoa.senha}" size="80"/>
                
                <h:outputLabel for="dataNasc" value="Data Nascimento: "  />
                <h:inputText id="dataNasc" validatorMessage="Data de nascimento com formato inválido!" value="#{pessoaMB.pessoa.dataNascimento}" size="60" style=" width : 75px;">
                    <f:convertDateTime pattern="dd/MM/yyyy" />
                    <rich:jQuery selector="#dataNasc" query="mask('99/99/9999')" timing="onload"/>
                </h:inputText> 
                    
                <h:outputLabel for="telCel" value="Tel. Celular "  />
                <h:inputText id="telCel" value="#{pessoaMB.pessoa.telefoneCelular}">
                    <rich:jQuery selector="#telCel" query="mask('([telefone removido]')" timing="onload"/>
                </h:inputText>
                </h:panelGrid>
                
                <fieldset style="width: 532px; ">
            <legend>Busca Cidades</legend>
                    <h:panelGrid columns="5">
                    <h:outputLabel for="consultaCidade" value="Consulta Cidade"/>
                    <h:inputText id="idCidade" value="#{pessoaMB.pessoa.cidade.id}" size="10">

                    </h:inputText>

                    <h:outputLink value="#" id="link" onclick="NovaJanela('../cadastroPessoa/jan3.jsf','Consultas','800','550','yes');return false">
                        <h:graphicImage value="/images/loupe_petit.bmp" />
                    </h:outputLink>


                    <h:inputText id="nomeCidade" 
                        size="10" style="width: 317px; " />
                        
                        <h:inputText id="uf"  size="10" style="width: 36px; " />
                        
                        </h:panelGrid>

                       </fieldset>
                
                
                
                
                <a4j:commandButton value="Atualizar" action="#{pessoaMB.merge}" styleClass="botoes" status="sts" reRender="fisicas"/>
                <a4j:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="botoes"/>
            
        </fieldset>
                
            
            
            
            
            </h:form>


</f:view>
</body>
</html>

Aqui esta também o manageBean:

package br.com.serjaum.mb;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.serjaum.dao.PessoaDAO;
import br.com.serjaum.facade.PessoaFacade;
import br.com.serjaum.facade.PessoaFacadeImpl;
import br.com.serjaum.modelo.Cidade;
import br.com.serjaum.modelo.Pessoa;
import br.com.serjaum.util.HibernateUtil;



//@ManagedBean(name="pessoaMB")
@ViewScoped
public class PessoaMB implements Serializable {
	
	private static final long serialVersionUID = -333995781063775201L;


	private Pessoa pessoa;
	private Cidade cidade;
	





	private PessoaDAO auxSession;
    private String nome;
    private List<Pessoa> lista = new ArrayList<Pessoa>();
    private String desc = "";

    
    private boolean listaFieldSet = false;
    
    private boolean fildSetPessoa = false;
    



	public boolean isFildSetPessoa() {
		return fildSetPessoa;
	}

	public void setFildSetPessoa(boolean fildSetPessoa) {
		this.fildSetPessoa = fildSetPessoa;
	}

	public boolean isListaFieldSet()
	{
		return listaFieldSet;
	}

	public void setListaFieldSet(boolean listaFieldSet)
	{
		this.listaFieldSet = listaFieldSet;
	}


	private int id;


	public String getNome() {
		return nome;
	}

	public void setNome(String nome) {
		this.nome = nome;
	}

	public PessoaDAO getAuxSession() {
		return auxSession;
	}

	public void setAuxSession(PessoaDAO auxSession) {
		this.auxSession = auxSession;
	}


	public PessoaMB(){
		//System.out.println(" >>>>>>>>>>>>>>>>>>>> Construtor do PESSOA_MB <<<<<<<<<<<<<<<<<<");
		

	}
	
	public String login() throws Exception{
        boolean logado = false;
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        PessoaFacade pessoaService = new PessoaFacadeImpl();
		
        logado = pessoaService.autentica(this.pessoa.getEmail(), this.pessoa.getSenha());
        
        if(logado){
        	Pessoa dados = (Pessoa)session.getAttribute("usuario");
        	nome = dados.getNome().toString();
            session.setAttribute("user",nome); 
            rp.sendRedirect(rq.getContextPath() + "/pages/index.jsf");
            Pessoa auxPessoa = new Pessoa();
            return "successo";
        }else{
            session.setAttribute("user", null);
            session.removeAttribute("user");
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
            return "failurer";
        }
    }
	
	public String logout() {
		HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
		HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
		FacesContext facesContext = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
		session.invalidate();
		try {
			rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
		} catch (IOException e) {
			e.printStackTrace();
		}
		
		return "logoutOk";
	}
	
	public String save(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
				
		pessoaService.salva(this.pessoa);
		
		this.pessoa = new Pessoa(); 
		return "cadastraSucesso";
	}

	public String delete(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
		this.pessoa.setId(id);
		pessoaService.remove(this.pessoa);
		this.pessoa = new Pessoa(); 
		
		return "removeSucesso";
	}
	
	public String merge(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
		pessoaService.atualiza(this.pessoa);
		this.pessoa = new Pessoa(); 

		return "atualizaSucesso";
	}
	
	public String load(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();
		this.pessoa = pessoaService.procura(this.id);
		
		return "pesquisaSucesso";
	}

	public String pesquisaByNome(){
		PessoaFacadeImpl pessoaService = new PessoaFacadeImpl();
		this.pessoa = pessoaService.procuraByNome(this.pessoa.getNome());
		
		return "pesquisaByNomeSucesso";
	}
	
	public List<Pessoa> getPessoas(){
		PessoaFacade pessoaService = new PessoaFacadeImpl();		
		
		return pessoaService.lista();
	}

	public List<Pessoa> pessoasByNome(String nome){ 
		PessoaFacade pessoaService = new PessoaFacadeImpl();

		List<Pessoa> lista = pessoaService.pesquisaPessoasByNome(nome);

		return lista;
	}
	
	public String pesquisaPessoas(){
		
		lista = pessoasByNome(desc);
	    if (lista != null || lista.size() > 0){
			listaFieldSet = true ;
		    }else 
		    	if (lista.size()== 0){ 
		            listaFieldSet = false;
		    	}


		
		return null;
	}

	public Cidade getCidade() {
		return cidade;
	}

	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}

	public Pessoa getPessoa() {
		if(this.pessoa == null){
			this.pessoa = new Pessoa();
			this.pessoa.cidade = new Cidade();
		}
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	/**
	 * @param lista the lista to set
	 */
	public void setLista(List<Pessoa> lista) {
		this.lista = lista;
	}
	
	public String getDesc() {
		return desc;
	}

	public void setDesc(String desc) {
		this.desc = desc;
	}

	public List<Pessoa> listaPessoasPorNome(String nome){
		
		Session session = HibernateUtil.getSession();
		
		Query q = session.createQuery(" from Pessoa t where t.nome like :nome ");
		
		q.setParameter("nome", "%" +nome+ "%");
		
		List<Pessoa> pessoa = q.list();
		
	     return pessoa;	
	}
	

	

	
	   public List<Pessoa> getLista() {
			// if (desc.equals("")){
			//	 lista = listaTodosLivros();
				 return lista;
			// }else{
			//	  return lista;
			  // }
	}
	   
		public void prerender()
		{
			if (lista == null || lista.size() == 0)
				listaFieldSet = false;
			else
				listaFieldSet = true;
		}
		


}
J

… é só esse cadastro o resto esta tudo bem … os cadastros funcionam bem… no caso seria a consulta …

L

`não vejo erro assim de cara, seria melhor debugando mas de qualquer forma tenta isso na consulta:
from Pessoa t join fetch t.cidade as c where

`

J

… … eu fiz uma busca por id da entidade Pessoa assim desta forma eu consigo trazer o que quero como os dados de Pessoa e Cidade em um único resultado, mas estou tendo dificuldades, da erro … eu não tenho experiência não estou sabendo como fazer … esta aqui:

no PessoaDAO:

public Pessoa buscaPessoa(Integer id){
        Query q = session.createQuery("select p from Pessoa as p where p.id= :id");
        
        q.setParameter("id", id);
        
        Pessoa pessoa = (Pessoa) q.uniqueResult();
        
         return pessoa;
    }

no PessoaFacadeImpl:

public Pessoa procura(int id) {
        Session session = HibernateUtil.getSession();
        Transaction tx = session.beginTransaction();
        tx = session.beginTransaction();
        pessoaDAO = new PessoaDAO(session, Pessoa.class);
                
        Pessoa p = this.pessoaDAO.buscaPessoa(id);
        
        tx.commit();
        session.close();
        
        return p;
    }

no pessoaMB // manageBean

public Pessoa ById()  // metodo no pesquisaPessoaGrid -> Selecionar...
    {
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        Pessoa p = pessoaService.procura(id);
         
        
            return p;
    }

Não sei o que é pois, não retorna resultado, mas ele chega fazer a busca… só não ta trazendo o resultado para o form Pessoa…

Eis a pagina:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib prefix="rich" uri="http://richfaces.ajax4jsf.org/rich"%>
<%@ taglib prefix="a4j" uri="http://richfaces.org/a4j"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link href="../../style/yui-datatable.css" rel="stylesheet" type="text/css">
    <%-- <link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}../../style/yiu-datatable.css"> --%>
    <script type="text/javascript"  src="/jsf/resources/jquery.maskedinput-1.2.1.js"></script>
    <script>
    
    var 
    win = null;
    janela2 = null;
    function NovaJanela(pagina,nome,w,h,scroll){
    LeftPosition = (screen.width) ? (screen.width-w)/2 : 0;
    TopPosition = (screen.height) ? (screen.height-h)/2 : 0;
    settings = 'height='+h+',width='+w+',top='+TopPosition+',left='+LeftPosition+',scrollbars='+scroll+',resizable'
    win = window.open(pagina,nome,settings);
    }

    </script>
</head>

<body>
<f:view>
    
    <h:form id="f1" prependId="false">
        <a4j:keepAlive beanName="pessoaMB" />
        <h:messages/>
    
         <fieldset>
            <legend>Pesquisa de Pessoas</legend>
            <h:panelGrid columns="5" style=" width : 599px;">
            
                <h:outputLabel for="nomeLabel" value="Digite o nome: " />
                                                              
                <h:inputText id="nomeInput" value="#{pessoaMB.desc}" style=" width : 321px;" />
 
                <h:commandButton value="Pesquisar" action="#{pessoaMB.pesquisaPessoas}" styleClass="submit" />
                <h:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="submit"/>
            </h:panelGrid>
            </fieldset>
            <br />
            <rich:dataTable value="#{pessoaMB.lista}" var="fisica" rows="3" id="fisicas" styleClass="yui-datatable-theme" rendered="#{pessoaMB.listaFieldSet}" width="55%" cellspacing="0" cellpadding="0" border="1">    
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Codigo Cidade" />
                    </f:facet>
                    <h:outputText value="#{fisica.cidade.id}" />
                </h:column>
                
                
                
                
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="NOME" />
                    </f:facet>
                    <h:outputText value="#{fisica.nome}" />
                </h:column>
    
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="E-MAIL" />
                    </f:facet>
                    <h:outputText value="#{fisica.email}" />
                </h:column>
    
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="CPF" />
                    </f:facet>
                    <h:outputText value="#{fisica.cpf}" />
                </h:column>
            
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="DATA NASC." />
                    </f:facet>
                    <h:outputText value="#{fisica.dataNascimento}">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </h:outputText>
                </h:column>
             
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="CELULAR" />
                    </f:facet>
                    <h:outputText value="#{fisica.telefoneCelular}" />
                </h:column>
    
                <h:column>
                    <f:facet name="header">
                        <h:outputText value="Selecionar"/>
                    </f:facet>
                    
                    <a4j:commandLink action="#{pessoaMB.ById}" status="sts" reRender="fisicas" >
                        <h:outputText value="Selecionar"/>
                        <f:setPropertyActionListener value="#{fisica.id}" target="#{pessoaMB.id}" />
                    </a4j:commandLink>
            

            
                </h:column>
                 
                 <f:facet name="footer">
                    <rich:datascroller maxPages="3"/>
                </f:facet>
            </rich:dataTable>
            
            
            <rich:messages/>
            
            <a4j:region id="regiaoAjax">
                 <a4j:status id="sts">
                    <f:facet name="start">
                        <h:graphicImage value="/images/ajax-loader.gif" />
                       </f:facet>
                </a4j:status>
            </a4j:region>
            
            <h:panelGrid columns="2" id="panelGridInputs" rendered="#{pessoaMB.listaFieldSet}">
                <h:outputLabel for="nome" value="Nome "  />
                <h:inputText id="nome" value="#{pessoaMB.pessoa.nome}" style=" width : 254px;"/>
                
                <h:outputLabel for="email" value="E-mail "  />
                <h:inputText id="email" value="#{pessoaMB.pessoa.email}" style=" width : 249px;">
                    <f:validator validatorId="emailValidator"/>
                </h:inputText>
                
                <h:outputLabel for="cpf" value="CPF "  />
                <h:inputText id="cpf" validatorMessage="CPF inválido!" value="#{pessoaMB.pessoa.cpf}" size="60" style=" width : 106px;">
                    <rich:jQuery selector="#cpf" query="mask('[CPF removido]')" timing="onload"/>
                    <stella:validateCPF formatted="true"/>
                </h:inputText>
                
                <h:outputLabel for="senha" value="Senha "  />
                <h:inputSecret id="senha" redisplay="true" value="#{pessoaMB.pessoa.senha}" size="80"/>
                
                <h:outputLabel for="dataNasc" value="Data Nascimento: "  />
                <h:inputText id="dataNasc" validatorMessage="Data de nascimento com formato inválido!" value="#{pessoaMB.pessoa.dataNascimento}" size="60" style=" width : 75px;">
                    <f:convertDateTime pattern="dd/MM/yyyy" />
                    <rich:jQuery selector="#dataNasc" query="mask('99/99/9999')" timing="onload"/>
                </h:inputText> 
                    
                <h:outputLabel for="telCel" value="Tel. Celular "  />
                <h:inputText id="telCel" value="#{pessoaMB.pessoa.telefoneCelular}">
                    <rich:jQuery selector="#telCel" query="mask('([telefone removido]')" timing="onload"/>
                </h:inputText>
                </h:panelGrid>
                
                <fieldset style="width: 532px; ">
            <legend>Busca Cidades</legend>
                    <h:panelGrid columns="5">
                    <h:outputLabel for="consultaCidade" value="Consulta Cidade"/>
                    <h:inputText id="idCidade" disabled="true" value="#{pessoaMB.pessoa.cidade.id}" size="10">

                    </h:inputText>

                    <h:outputLink value="#" id="link" onclick="NovaJanela('../cadastroPessoa/jan3.jsf','Consultas','800','550','yes');return false">
                        <h:graphicImage value="/images/loupe_petit.bmp" />
                    </h:outputLink>


                    <h:inputText id="nomeCidade" 
                        size="10" style="width: 317px; " />
                        
                        <h:inputText id="uf"  size="10" style="width: 36px; " />
                        
                        </h:panelGrid>

                       </fieldset>
                
                
                
                
                <a4j:commandButton value="Atualizar" action="#{pessoaMB.merge}" styleClass="botoes" status="sts" reRender="fisicas"/>
                <a4j:commandButton value="Voltar" immediate="true" action="toIndex" styleClass="botoes"/>
            
        </fieldset>
                
            
            
            
            
            </h:form>


</f:view>
</body>
</html>
J

manageBean, inteiro:

package br.com.serjaum.mb;

import java.io.IOException;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.serjaum.dao.PessoaDAO;
import br.com.serjaum.facade.PessoaFacade;
import br.com.serjaum.facade.PessoaFacadeImpl;
import br.com.serjaum.modelo.Cidade;
import br.com.serjaum.modelo.Pessoa;
import br.com.serjaum.util.HibernateUtil;



//@ManagedBean(name="pessoaMB")
@ViewScoped
public class PessoaMB implements Serializable {
    
    private static final long serialVersionUID = -333995781063775201L;


    private Pessoa pessoa;
    private Cidade cidade;
    





    private PessoaDAO auxSession;
    private String nome;
    private List<Pessoa> lista = new ArrayList<Pessoa>();
    private String desc = "";
    private Integer id;
    
    private boolean listaFieldSet = false;
    
    private boolean fildSetPessoa = false;
    



    public boolean isFildSetPessoa() {
        return fildSetPessoa;
    }

    public void setFildSetPessoa(boolean fildSetPessoa) {
        this.fildSetPessoa = fildSetPessoa;
    }

    public boolean isListaFieldSet()
    {
        return listaFieldSet;
    }

    public void setListaFieldSet(boolean listaFieldSet)
    {
        this.listaFieldSet = listaFieldSet;
    }


    


    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public PessoaDAO getAuxSession() {
        return auxSession;
    }

    public void setAuxSession(PessoaDAO auxSession) {
        this.auxSession = auxSession;
    }


    public PessoaMB(){
        //System.out.println(" >>>>>>>>>>>>>>>>>>>> Contrutor do PESSOA_MB <<<<<<<<<<<<<<<<<<");
        


    }
    
    public String login() throws Exception{
        boolean logado = false;
        HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        
        logado = pessoaService.autentica(this.pessoa.getEmail(), this.pessoa.getSenha());
        
        if(logado){
            Pessoa dados = (Pessoa)session.getAttribute("usuario");
            nome = dados.getNome().toString();
            session.setAttribute("user",nome); 
            rp.sendRedirect(rq.getContextPath() + "/pages/index.jsf");
            Pessoa auxPessoa = new Pessoa();
            return "successo";
        }else{
            session.setAttribute("user", null);
            session.removeAttribute("user");
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
            return "failurer";
        }
    }
    
    public String logout() {
        HttpServletRequest rq = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
        HttpServletResponse rp = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext().getResponse();
        FacesContext facesContext = FacesContext.getCurrentInstance();
        HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
        session.invalidate();
        try {
            rp.sendRedirect(rq.getContextPath() + "/pages/login/login.jsf");
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        return "logoutOk";
    }
    
    public String save(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
                
        pessoaService.salva(this.pessoa);
        
        this.pessoa = new Pessoa(); 
        return "cadastraSucesso";
    }

    public String delete(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        this.pessoa.setId(id);
        pessoaService.remove(this.pessoa);
        this.pessoa = new Pessoa(); 
        
        return "removeSucesso";
    }
    
    public String merge(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        pessoaService.atualiza(this.pessoa);
        this.pessoa = new Pessoa(); 

        return "atualizaSucesso";
    }
    
    public String load(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        this.pessoa = pessoaService.procura(this.id);
        
        return "pesquisaSucesso";
    }

    public String pesquisaByNome(){
        PessoaFacadeImpl pessoaService = new PessoaFacadeImpl();
        this.pessoa = pessoaService.procuraByNome(this.pessoa.getNome());
        
        return "pesquisaByNomeSucesso";
    }
    
    public List<Pessoa> getPessoas(){
        PessoaFacade pessoaService = new PessoaFacadeImpl();        
        
        return pessoaService.lista();
    }
    
    public Pessoa procuraById(int id){
    PessoaFacade pessoaService = new PessoaFacadeImpl();
    Pessoa p = pessoaService.procuraById(id);
     
    
        return p;
    }
    
    public Pessoa ById()  // metodo no pesquisaPessoaGrid -> Selecionar...
    {
        PessoaFacade pessoaService = new PessoaFacadeImpl();
        Pessoa p = pessoaService.procura(id);
         
        
            return p;
    }

    public List<Pessoa> pessoasByNome(String nome){ 
        PessoaFacade pessoaService = new PessoaFacadeImpl();

        List<Pessoa> lista = pessoaService.pesquisaPessoasByNome(nome);

        return lista;
    }
    
    public String pesquisaPessoas(){
        
        lista = pessoasByNome(desc);
        if (lista != null || lista.size() > 0){
            listaFieldSet = true ;
            }else 
                if (lista.size()== 0){ 
                    listaFieldSet = false;
                }


        
        return null;
    }

    public Cidade getCidade() {
        return cidade;
    }

    public void setCidade(Cidade cidade) {
        this.cidade = cidade;
    }

    public Pessoa getPessoa() {
        if(this.pessoa == null){
            this.pessoa = new Pessoa();
            this.pessoa.cidade = new Cidade();
        }
            
        //}
        return pessoa;
    }








    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }



    /**
     * @param lista the lista to set
     */
    public void setLista(List<Pessoa> lista) {
        this.lista = lista;
    }
    
    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public List<Pessoa> listaPessoasPorNome(String nome){
        
        Session session = HibernateUtil.getSession();
        
        Query q = session.createQuery(" from Pessoa t where t.nome like :nome ");
        
        q.setParameter("nome", "%" +nome+ "%");
        
        List<Pessoa> pessoa = q.list();
        
         return pessoa;    
    }
    

    

    
       public List<Pessoa> getLista() {
            // if (desc.equals("")){
            //     lista = listaTodosLivros();
                 return lista;
            // }else{
            //      return lista;
              // }
    }
       
        public void prerender()
        {
            if (lista == null || lista.size() == 0)
                listaFieldSet = false;
            else
                listaFieldSet = true;
        }
        


}
J

… raios ! Alguém me ajude !!! Por Favor !! heeheheheehhehhe

L

tenta isso update=@form ou update=@all no link Selecionar

J

… tentei usar, mas deu erro na página … chiiiiiiii hehehehe…

L

mostra o erro

J
mar 10, 2016 10:10:18 AM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/jsf] threw exception [/pages/cadastroPessoa/pesquisaPessoaGrid.jsp (line: 105, column: 64) quote symbol expected] with root cause
org.apache.jasper.JasperException: /pages/cadastroPessoa/pesquisaPessoaGrid.jsp (line: 105, column: 64) quote symbol expected
	at org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
	at org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:275)
	at org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:91)
	at org.apache.jasper.compiler.Parser.parseAttribute(Parser.java:225)
	at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:163)
	at org.apache.jasper.compiler.Parser.parseAttributes(Parser.java:154)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1241)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1460)
	at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1673)
	at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1006)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1281)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1460)
	at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1673)
	at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1006)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1281)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1460)
	at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1673)
	at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1006)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1281)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1460)
	at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1673)
	at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1006)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1281)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1460)
	at org.apache.jasper.compiler.Parser.parseBody(Parser.java:1673)
	at org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1006)
	at org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1281)
	at org.apache.jasper.compiler.Parser.parseElements(Parser.java:1460)
	at org.apache.jasper.compiler.Parser.parse(Parser.java:139)
	at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:227)
	at org.apache.jasper.compiler.ParserController.parse(ParserController.java:100)
	at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:199)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336)
	at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323)
	at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:585)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:363)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:396)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:340)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:719)
	at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:465)
	at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:390)
	at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:317)
	at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:341)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.buildView(JspViewHandlerImpl.java:486)
	at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:337)
	at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
	at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
	at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
	at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:266)
	at org.apache.myfaces.webapp.MyFacesServlet.service(MyFacesServlet.java:103)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
	at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
	at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
	at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:745)
L

isso me parece erro de Expression Language, veja se na linha 105 da sua página falta um #

C

Olá,

O lucciano01 já passou a dica, você não está fazendo o fetch da cidade quando carrega a pessoa.

C

Olá,

Leia esse artigo do DevMedia: http://www.devmedia.com.br/lazy-e-eager-loading-com-hibernate/29554

J

… cara mesmo assim não deu certo … não sei se é meu método MB … eu mudei meu “selecionar” para fazer uma pesquisa e não deu certo, não retorna nada para os campos …

Alguém tem um email, para eu mandar a aplicação… não é nada sério é só uns CRUD com richFaces, muito bom por sinal e eu sou iniciante no hibernate … pode mandar o email de vocês que eu mando …

C

Olá,

Publique seu código no GitHub ou GitLab, assim fica mais fácil para alguém ajudá-lo.

J

ok,:

C

Olá,

Em walter.junior/jsf/src/br/com/serjaum/modelo/Pessoa.java:

@JoinColumn(name = "COD_CIDADE")
@ManyToOne
public Cidade cidade;

Susbtitua por:

@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "COD_CIDADE")
public Cidade cidade;

Cordialmente.

J

… eu já fiz isso e não retornou as demais informações de Cidade …

C

Olá,

Em PessoaDAO.java:

public Pessoa pesquisaPessoaById(int idPessoa) {
    logger.info("pesquisaPessoaById : " + idPessoa);
    return (Pessoa) session.load(Pessoa.class, idPessoa);
}

public Pessoa buscaPessoa(Integer id){
    Query q = session.createQuery("from Pessoa t join fetch t.cidade as c where t.id=:id");	
    q.setParameter("id", id);

    Pessoa pessoa = (Pessoa) q.uniqueResult();

    return pessoa;
}

O primeiro método não recupera a cidade sem o FetchType.EAGER.

O segundo método recupera a cidade juntamente com a pessoa. É equivalente ao atributo “fetch = FetchType.EAGER” da anotação ManyToOne da entity Pessoa, que lhe mostrei anteriormente.

C

Olá,

Você está usando o tutorial do Sérgio Fantin, “JSF – Tutorial RichFaces + Hibernate + MySQL – CRUD completo” (https://serjaum.wordpress.com/2009/08/27/jsf-–-tutorial-richfaces-hibernate-mysql-–-crud-completo-parte-final/) ?

Já tentou tirar sua dúvida no Grupo do Google “javasf: JavaServer Faces Group” (https://groups.google.com/forum/#!forum/javasf) ?

C

Olá,

Sabia que o RichFaces vai chegar ao fim em junho/2016?

ANNOUNCEMENT:The future of RichFaces + End-Of-Life Questions & Answers

The RichFaces project will reach its end of life in June 2016.
You can read the announcement here and the accompanying Questions and Answers here.
by richfaces at Mon Feb 15 07:02:08 EST 2016
http://richfaces.jboss.org/

The future of RichFaces: https://developer.jboss.org/people/michpetrov/blog/2016/02/12/the-future-of-richfaces

J

Sim, estou é muito bom! Serjaum é Féra!

J

… é verdade ? Nossa mas porque ??? é tão bom, não pode acabar assim, tem aplicações profissionais rodando com richFaces … Junho deste ano ? meu Deus que sacanagem …

O que usar então ? primeFaces ? ou eles vão fazer um novo framework ? do JBoss ?

Obrigado por enquanto!

J

… dei uma debugada e ele esta trazendo sim cidade, mas não esta retornando no formulário atualiza Pessoa … muito extranho isso … fala verdade eu não sei …

D

Olá, pelo que vi você está fazendo um relacionamento bi-direcional.
Sugiro tentar colocar o mapped-by, acho que é assim q se escreve.
JSF 1.2 é bem cruel , trabalho com ele, usando o SEAM.

D

Quase esqueci ,bom quando se fala em relacionamentos, se usa um converter.
Não vi o seu, então da uma olhada no seu caso tenha, se possível utilizar um genérico seria melhor ainda.

J

… ummmmm… da um exemplo de converter no meu caso, pode ajudar ?

D

Aqui um exemplo de entity converters:
http://www.rponte.com.br/2008/07/26/entity-converters-pra-da-e-vender/

Quando se fala no uso do JSF, é necessário o uso de converters para podermos cadastramos ou mostrarmos os objetos relacionados, o framework seam possui o seu próprio.

Porem, tenho outra coisa para você, existe uma biblioteca feita por brasileiros eu acho, que devo recomendar-lhe e a todos que vejam este post, aqui o link dela:
http://xpert-framework.github.io/

Aqui o link do showcase:
http://showcase.xpertsistemas.com.br/

Esta biblioteca possui o entity converter e outros convertes que pode ser necessário como CPF, CNPJ e etc, da uma olhada !

No seu caso, acredito que a biblioteca não seja util, pela versão que voce está usando do JSF, mas caso queira atualizar para a versão 2.X do JSF, fica a dica !

Abraços !

R

Rapaz… Dei uma olhada rápida no código e vou falar o que me parece, mas não sei se estou certo.

Observando as classes de entidade Pessoa e Cidade, reparei que estão fora do padrão, pois como sabemos, o usual de declarar variável no banco para nomes compostos é id_cidade e não idcidade ou nome_cidade e não nomecidade.
Repare que a classe Pessoa está de uma forma e a Classe Cidade está de outra. Não quer dizer que esteja errado, funciona se estiver escrito como no banco, mas o padrão é nome_composto e tente manter o padrão.

A classe de entidade Pessoa está relacionada com a Cidade, através do COD_CIDADE.
Porém na classe de entidade Cidade não existe o campo COD_CIDADE, mas sim idcidade.
Verifique se no banco existe este campo COD_CIDADE na tabela Cidade, mas deveria ser referenciado por idcidade.
E também na tabela Pessoa deverá existir o campo idcidade e não o COD_CIDADE.
Logo, Pessoa deveria estar relacionada com idcidade. e não com COD_CIDADE
Este campo idcidade deve ser alterado para id_cidade, bem como os outros campos, para manter o padrão.
Talvez o erro pode estar acontecendo aqui.

A anotação @ManyToOne, por default é EAGER, não sendo necessária declarar, a não ser que queira ser LAZY.
Só lembrando, pois tenho certeza que todos sabem que, quando se declara EAGER, todos os dados do objeto filho serão carregados junto com o objeto pai.
Em grandes volumes de dados, não é recomendado usar tal anotação (EAGER) devido à lentidão que irá causar no sistema. Mas isto tem que ser estudado pois tem horas que precisamos de todos os dados. Cada caso é um caso.
O motivo da lentidão: imagine um banco de dados que tem o cadastro de pessoas do Brasil inteiro, e você faz um listAllPessoas que irá retornar os dados das pessoas bem como os dados da cidade, e você só precisava dos nomes das pessoas. :frowning:

Quando trabalhamos em sistemas, temos que pensar sempre em grandes volumes de dados, mesmo que não o tenhamos.

Outro detalhe: na classe PessoaMB creio não ser necessária a declaração Cidade cidade, já que JAVA trabalha orientado a objeto e a cidade já está dentro de pessoa.
Sendo assim, a maneira correta de se referir à cidade, conforme seu código, seria: pessoa.cidade.
Para pegar o código, seria pessoa.cidade.codigoCidade ou pessoa.cidade.idCidade, bem como pessoa.cidade.uf retornará a sigla do estado.

Como mencionei acima, não olhei a fundo, não olhei a view, somente estas duas classes.

Espero que eu tenha sido claro nas explicações.

J

… olá pessoal que boa orientação valeu a todos.

Troquei de projeto peguei um bem saco sem primeFaces e nem de RichFaces ....

          Estou agora com um problema, talvez seja um problema de configuração da JPA, mas eu  chequei e não consegui encontrar nada de errado por  .....
            
           Da o seguinte erro:


ERROR: HHH000177: Error in named query: cidade.findUserByCidade
org.hibernate.hql.internal.ast.QuerySyntaxException: cidade is not mapped [select c from cidade c where c.nomeCidade = :nome]
    at org.hibernate.hql.internal.ast.util.SessionFactoryHelper.requireClassPersister(SessionFactoryHelper.java:180)
    at org.hibernate.hql.internal.ast.tree.FromElementFactory.addFromElement(FromElementFactory.java:110)
    at org.hibernate.hql.internal.ast.tree.FromClause.addFromElement(FromClause.java:93)
    at org.hibernate.hql.internal.ast.HqlSqlWalker.createFromElement(HqlSqlWalker.java:325)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElement(HqlSqlBaseWalker.java:3252)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromElementList(HqlSqlBaseWalker.java:3141)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.fromClause(HqlSqlBaseWalker.java:694)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.query(HqlSqlBaseWalker.java:550)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.selectStatement(HqlSqlBaseWalker.java:287)
    at org.hibernate.hql.internal.antlr.HqlSqlBaseWalker.statement(HqlSqlBaseWalker.java:235)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.analyze(QueryTranslatorImpl.java:248)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile(QueryTranslatorImpl.java:183)
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile(QueryTranslatorImpl.java:136)
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:101)
    at org.hibernate.engine.query.spi.HQLQueryPlan.<init>(HQLQueryPlan.java:80)
    at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:119)
    at org.hibernate.internal.SessionFactoryImpl.checkNamedQueries(SessionFactoryImpl.java:971)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:478)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at fachada.AbstractFacade.<clinit>(AbstractFacade.java:14)
    at beansgerenciados.PessoaManagedBean.<init>(PessoaManagedBean.java:21)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at java.lang.Class.newInstance(Class.java:442)
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:184)
    at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:98)
    at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:405)
    at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:265)
    at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:191)
    at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:73)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:66)
    at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
    at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:80)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:137)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:115)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
    at javax.faces.component.UIData.getValue(UIData.java:554)
    at javax.faces.component.UIData.getDataModel(UIData.java:1278)
    at javax.faces.component.UIData.setRowIndex(UIData.java:447)
    at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:77)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:824)
    at javax.faces.component.UIData.encodeBegin(UIData.java:937)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1641)
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
    at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:427)
    at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:229)
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

mar 24, 2016 2:02:00 AM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/Projeto_Crud] threw exception [null] with root cause
org.hibernate.HibernateException: Errors in named queries: cidade.findUserByCidade
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:489)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1737)
    at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:905)
    at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:890)
    at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:56)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
    at fachada.AbstractFacade.<clinit>(AbstractFacade.java:14)
    at beansgerenciados.PessoaManagedBean.<init>(PessoaManagedBean.java:21)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
    at java.lang.Class.newInstance(Class.java:442)
    at com.sun.faces.mgbean.BeanBuilder.newBeanInstance(BeanBuilder.java:184)
    at com.sun.faces.mgbean.BeanBuilder.build(BeanBuilder.java:98)
    at com.sun.faces.mgbean.BeanManager.createAndPush(BeanManager.java:405)
    at com.sun.faces.mgbean.BeanManager.create(BeanManager.java:265)
    at com.sun.faces.el.ManagedBeanELResolver.resolveBean(ManagedBeanELResolver.java:191)
    at com.sun.faces.el.ManagedBeanELResolver.getValue(ManagedBeanELResolver.java:73)
    at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:66)
    at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:71)
    at org.apache.el.parser.AstIdentifier.getValue(AstIdentifier.java:80)
    at org.apache.el.parser.AstValue.getValue(AstValue.java:137)
    at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:184)
    at org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:115)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:190)
    at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:178)
    at javax.faces.component.UIData.getValue(UIData.java:554)
    at javax.faces.component.UIData.getDataModel(UIData.java:1278)
    at javax.faces.component.UIData.setRowIndex(UIData.java:447)
    at com.sun.faces.renderkit.html_basic.TableRenderer.encodeBegin(TableRenderer.java:77)
    at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:824)
    at javax.faces.component.UIData.encodeBegin(UIData.java:937)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1641)
    at javax.faces.render.Renderer.encodeChildren(Renderer.java:164)
    at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:849)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1643)
    at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1646)
    at com.sun.faces.application.view.JspViewHandlingStrategy.doRenderView(JspViewHandlingStrategy.java:427)
    at com.sun.faces.application.view.JspViewHandlingStrategy.renderView(JspViewHandlingStrategy.java:229)
    at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:127)
    at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:117)
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:97)
    at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:135)
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:309)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:521)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1096)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:674)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1500)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1456)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)

minha classe cidade:

   package modelo;

    import java.io.Serializable;

    import javax.persistence.Basic;
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.NamedQuery;
    import javax.persistence.Table;

    @Entity
    @Table(name = "cidade")
    @NamedQuery(name = "cidade.findUserByCidade", query = "select c from cidade c where c.nomeCidade = :nome")
    public class Cidade implements Serializable {

    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = "IDCidade", nullable=false)
    private int id;


    @Basic(optional = false)
    @Column(name = "NomeCidade", nullable=false)
    private String nomeCidade;


    @Basic(optional = false)
    @Column(name = "uf", nullable=true)
    private String uf;


    public int getId() {
        return id;
    }


    public void setId(int id) {
        this.id = id;
    }


    public String getNomeCidade() {
        return nomeCidade;
    }


    public void setNomeCidade(String nomeCidade) {
        this.nomeCidade = nomeCidade;
    }


    public String getUf() {
        return uf;
    }


    public void setUf(String uf) {
        this.uf = uf;
    }


    }

meu método de busca:

public List<Cidade> listCidadesBy(String desc)
    {

        String sql = "cidade.findUserByCidade";
        Query query = emf.createEntityManager().createNamedQuery(sql);
        query.setParameter("nome","%"+desc+"%");
        List<Cidade> lista = query.getResultList();
        
        return lista;
    }

   não sei o que é ... alguém pode me socorrer ?
  
    no caso eu estou usando JPA e não Hibernate, ok ? .... parece que ele não encontra a entidade "cidade" ..


     Alguém pode me ajudar é só essa a minha duvida ......
J

ops a consulta já foi solucionada, agora pintou uma zebrinha, daqui a pouco eu volto … mas desde já agradeço a todos !

J

A duvida agora é outra e o projeto é outro !

… preciso de ajuda de vocês mestres !

É com esse Cud:https://github.com/wdevjr/Projeto_Crud.git

   Estou com problemas em uma tabela, quando clico no link do datatable a tabela despopula.. some .....

   A pagina é essa: jan3.jsp
   E o manageBean é esse: CidadeManagedBean.java

   Se quiser importar o projeto para o eclipse é  importar sem problemas, pois os libs estão juntos!

    Acredito que seja problema de orientação a objeto, apenas ....

Aguardo orientação

Criado 7 de março de 2016
Ultima resposta 29 de mar. de 2016
Respostas 59
Participantes 7