Boa noite pessoal, estou começando a me aprofundar no hibernate e não consigo fazer uma busca de dados no banco por exemplo: Tenho id,nome,código no banco (1,J,j1) e queria quando passasse o id=1 mostrasse em tela os valores J,j1 para poder editar, segue o código que estou tentando:
Pessoa.class
@ManagedBean
@SessionScoped
@Entity
@Table(name="pessoa")
public class Pessoa implements Serializable {
@Id
@GeneratedValue
private Long id;
@Column(name="nome")
private String nome;
@Column(name="codigo")
private String codigo;
/** Creates a new instance of Pessoa */
public Pessoa() {
}
public Pessoa(Long id, String nome, String codigo) {
this.id = id;
this.nome = nome;
this.codigo = codigo;
}
//get´s and set´s
// hashCode e equals
PessoaDAO.class
public class PessoaDAO implements Serializable {
private Pessoa pessoaEdit;
public String Inicializar() {
this.pessoaEdit = new Pessoa();
return "Cadastrado";
}
public PessoaDAO(Pessoa pessoaEdit) {
this.pessoaEdit = pessoaEdit;
}
public PessoaDAO() {
this.pessoaEdit = new Pessoa();
}
public void SalvarPessoa(ActionEvent event) {
FacesContext context = FacesContext.getCurrentInstance();
try {
new PessoaFaces().salvar(this.pessoaEdit);
this.pessoaEdit = new Pessoa();
FacesMessage msg = new FacesMessage("Pessoa Salva com Sucesso!");
msg.setSeverity(FacesMessage.SEVERITY_INFO);
context.addMessage(null, msg);
} catch (PessoaException e) {
context.addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_ERROR, e
.getMessage(), e.getMessage()));
} catch (Exception e) {
e.printStackTrace();
FacesMessage msg = new FacesMessage(
"Erro inesperado ao salvar a pessoa!");
JOptionPane.showMessageDialog(null, msg);
msg.setSeverity(FacesMessage.SEVERITY_ERROR);
context.addMessage(null, msg);
}
}
public Pessoa getPessoaEdit() {
return pessoaEdit;
}
public void setPessoaEdit(Pessoa pessoaEdit) {
this.pessoaEdit = pessoaEdit;
}
}
PessoaFaces.class
@ManagedBean
@SessionScoped
public class PessoaFaces implements Serializable {
private Pessoa pessoaEdicao = new Pessoa();
private int Escolha;
private Long id;
public PessoaFaces() {
}
public List<Pessoa> pesquisarPorId(Long id){
Session session = HibernateUtil.getSession();
try{
System.out.println("Código Identificador: "+id);
Criteria c = session.createCriteria(Pessoa.class);
c.add(Restrictions.eq("id", id));
return c.list();
}finally{
session.close();
}
}
public void Consultar(ActionEvent event){
this.pessoaEdicao = (Pessoa) new PessoaFaces().pesquisarPorId(id);
}
buscaPessoa.jsp
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@ taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!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=ISO-8859-1">
<title>Buscar Pessoa</title>
</head>
<body>
<f:view>
<h:form>
<fieldset>
<legend>Busca de Pessoa</legend>
<h:panelGrid columns="2" id="Painel1">
<h:outputText value="ID: "></h:outputText>
<h:inputText value="#{PessoaFaces.id}"></h:inputText>
<h:outputText value="Nome: " id="OTNome"></h:outputText>
<h:inputText id="Cnome" value="#{PessoaDAO.pessoaEdit.nome}"></h:inputText>
<h:outputText value="Codigo: " id="OTCodigo"></h:outputText>
<h:inputText id="CodigoI" value="#{PessoaDAO.pessoaEdit.codigo}"></h:inputText>
<h:commandButton id="BuscarPessoa" value="Buscar" actionListener="#{PessoaFaces.Consultar}"></h:commandButton>
<h:commandButton id="Cancelar" value="Limpar" action="Reset"></h:commandButton>
</h:panelGrid>
</fieldset>
</h:form>
</f:view>
</body>
</html>
Desde já agradeço pela ajuda.