Não retorna nenhum valor na busca JAVA + HIBERNATE
eu tenho cadastro de países porém não está me retornando valor algum no meu botão editar:
no dao genérico:
retorna sempre País não encontrado...
mesmo tendo cadastro!
// 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
Curtidas 0
Melhor post
Jones Granatyr
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
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
GOSTEI 2
Mais Respostas
Ariel
04/10/2016
Fiz o teste em um jTeste(campo de texto) e está capturando o valor do campo carregado na jTab...
GOSTEI 0
Ariel
04/10/2016
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;
}
}
GOSTEI 0
Ariel
04/10/2016
Encontrei:
nessa linha:
"Codigo" -> a variável tem que iniciar maiúscula
Obrigado pela ajuda Jones Granatyr!
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!
GOSTEI 0