Prezados, bom dia.
Estou com um problema que já pesquisei sobre o assunto e nenhuma das dicas me ajudou. O que acontece é o seguinte, eu estou desenvolvendo um projeto web para meu TCC que utiliza hibernate + jsf e neste projeto eu tenho uma tela de consulta de clientes cadastrados. Quando eu efetuo a consulta, o resultado da busca carrega os dados em uma lista e exibe o resultado na mesma tela em um segundo formulario.
Em outras consultas eu fiz isso normalmente utilizando o critéria e funcionou sem problemas, porém como a consulta de clientes vai comparar o id de duas tabelas (pessoa e cliente) eu resolvi fazer essa busca utilizando queries nomeadas e eu já vi que a consulta me traz o objeto que eu quero mas não exibe o retorno em tela igual as outras consultas já implementadas. Alguem tem alguma sugestão do que pode ser ou o que mais eu posso pesquisar pra tentar resolver esse problema???
Desde já agradeço pelo auxílio.
Segue abaixo o código:
ClienteDAOHibernate
[code]public class ClienteDAOHibernate implements ClienteDAO {
private Session session;
public void setSession(Session session){
this.session = session;
}
@Override
public void salvar(Cliente cliente) {
this.session.save(cliente);
}
@Override
public void alterar(Cliente cliente) {
this.session.saveOrUpdate(cliente);
}
@Override
public void excluir(Cliente cliente) {
this.session.delete(cliente);
}
@Override
public List<Pessoa> buscar(String nome) {
String sql = "SELECT * FROM cliente c, pessoa p where c.cod_pessoa = p.cod_pessoa and p.nome like '"+nome+"%'";
SQLQuery query = this.session.createSQLQuery(sql);
List<Pessoa> pessoas = query.list();
return pessoas;
}
}[/code]
Regra de Negocio
[code]public class ClienteRN {
private ClienteDAO clienteDAO;
private Pessoa pessoa;
private Cliente cliente;
public ClienteRN() {
this.clienteDAO = DAOFactory.cadastrarClienteDAO();
}
public void salvar(Cliente cliente){
if(cliente.getCodigoCli()==null||cliente.getCodigoCli()==0){
this.clienteDAO.salvar(cliente);
}else {
this.clienteDAO.alterar(cliente);
}
}
public void excluir (Cliente cliente){
this.clienteDAO.excluir(cliente);
}
public List<Pessoa> buscar(String nome){
return this.clienteDAO.buscar(nome);
}
public ClienteDAO getClienteDAO() {
return clienteDAO;
}
public void setClienteDAO(ClienteDAO clienteDAO) {
this.clienteDAO = clienteDAO;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
}[/code]
ClienteBean
[code]@ManagedBean (name=“clienteBean”)
@RequestScoped
public class ClienteBean {
private Cliente cliente = new Cliente();
private Pessoa pessoa = new Pessoa();
public List listaCliente;
private String nome;
private Session sessao;
public void setSession(Session sessao){
this.sessao = sessao;
}
public String salvar(){
//FacesContext context = FacesContext.getCurrentInstance();
PessoaRN pessoaRN = new PessoaRN();
ClienteRN clienteRN = new ClienteRN();
if(pessoa.getPessoa()==null||pessoa.getPessoa()==0){
this.cliente.setPessoa(pessoa);
pessoaRN.salvar(this.pessoa);
clienteRN.salvar(this.cliente);
System.out.println("Usuário cadstrado!");
}
return "/publico/sucesso";
}
public List<Pessoa> buscarCliente() throws SQLException {
ClienteRN clienteRN = new ClienteRN();
listaCliente = (List<Pessoa>) clienteRN.buscar(nome);
System.out.println(listaCliente);
System.out.println("EXECUTOU O METODO");
return listaCliente;
}
public Cliente getCliente() {
return cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Pessoa getPessoa() {
return pessoa;
}
public void setPessoa(Pessoa pessoa) {
this.pessoa = pessoa;
}
public List<Pessoa> getListaCliente() {
return listaCliente;
}
public void setListaCliente(List<Pessoa> listaCliente) {
this.listaCliente = listaCliente;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public Session getSessao() {
return sessao;
}
public void setSessao(Session sessao) {
this.sessao = sessao;
}
}[/code]
Página consultacliente.jsf
[code]<?xml version="1.0" encoding="ISO-8859-1" ?>
Consulta ClienteSistema de Gerenciamento de Petshop
Busca de Clientes
Listagem de Clientes
<h:column>
<f:facet name="header">Nome</f:facet>
#{pessoa.nome}
</h:column>
<h:column>
<f:facet name="header">Endereço</f:facet>
#{pessoa.rua}
</h:column>
<h:column>
<f:facet name="header">Telefone</f:facet>
#{pessoa.telefone}
</h:column>
<h:column>
<f:facet name="header">Cidade</f:facet>
#{pessoa.cidade}
</h:column>
</h:dataTable>
</h:form>
</h:body>
[/code]