Fórum Não retorna nenhum valor na busca JAVA + HIBERNATE #563564

04/10/2016

0

eu tenho cadastro de países porém não está me retornando valor algum no meu botão editar:
// pega qual linha foi selecionada
int linha = jTab.getSelectedRow();
// pega o codigo da linha selecionada
Long codigo = (Long) jTab.getValueAt(linha, 0);
paises = (Paises) DaoGenerico.getInstance().buscarUnicoWhere(Paises.class, "codigo", codigo);
// verifica se voltou algum valor do banco para o codigo escolhido
if (paises != null) {
  // aqui acontece a magica, onde o filho chora e a mae nao ve 
  jtCodigo.setText(paises.getCodigo().toString());
  jtNome.setText(paises.getNome());
  jtSigla.setText(paises.getSigla());
  // muda a aba para a manutencao
  jtpGuias.setSelectedIndex(1);
} else {
  // nao voltou nda do banco
  JOptionPane.showMessageDialog(null, "País não encontrada...");
}


no dao genérico:
//tras um unic registro com a clausula where
    public Object buscarUnicoWhere(Class objeto, String campo, Object valor) {
        getSessao();
        Transaction transacao = sessao.beginTransaction();
        try {
            Criteria criteria = sessao.createCriteria(objeto);
            criteria.add(Restrictions.eq(campo, valor));
            Object retorno = criteria.uniqueResult();
            transacao.commit();
            return retorno;
        } catch (Exception ex) {
            transacao.rollback();
            ex.printStackTrace();
            return null;
        }
    }


retorna sempre País não encontrado...
mesmo tendo cadastro!
Ariel

Ariel

Responder

Post mais votado

04/10/2016

Olá Ariel,

Minha sugestão seria você primeiro verificar o valor da variável "codigo". Chegou a ver se ela está recebendo o valor correto do jTab?

Jones

Jones Granatyr

Jones Granatyr
Responder

Gostei + 2

Mais Posts

04/10/2016

Ariel

Fiz o teste em um jTeste(campo de texto) e está capturando o valor do campo carregado na jTab...
Responder

Gostei + 0

04/10/2016

Ariel

Essa é minha classe Entidade:

package model;

import java.io.Serializable;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

@Entity
@Table(name = "paises")
public class Paises implements Serializable{
    
    @Id
    @SequenceGenerator(name = "PAISES_SEQ", sequenceName = "seq_paises", allocationSize = 1, initialValue = 1)
    @GeneratedValue(generator = "PAISES_SEQ", strategy = GenerationType.AUTO)
    @Column(name = "codigo")
    private Long Codigo;
    
    @Column(name = "nome", length = 50)
    private String Nome;
    
    @Column(name = "sigla", length = 3)
    private String Sigla;
    
    public Paises() {
    }

    public Long getCodigo() {
        return Codigo;
    }

    public void setCodigo(Long Codigo) {
        this.Codigo = Codigo;
    }

    public String getNome() {
        return Nome;
    }

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

    public String getSigla() {
        return Sigla;
    }

    public void setSigla(String Sigla) {
        this.Sigla = Sigla;
    }
    
} 
Responder

Gostei + 0

05/10/2016

Ariel

Encontrei:
nessa linha:
paises = (Paises) DaoGenerico.getInstance().buscarUnicoWhere(Paises.class, "codigo", codigo);

"Codigo" -> a variável tem que iniciar maiúscula

Obrigado pela ajuda Jones Granatyr!
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar