Você vai popular uma lista de Contato com todos os registros que baterem no seu filtro.
Quando você faz uma JPQL, você tem que pensar que seu retorno é uma lista de entidades, e não as colunas da tabela.
A não ser que esteja fazendo uma nativeQuery
fabiodurgante
ta mas entao nao tem como recuperar a linha do banco ???
Rodrigo_Sasaki
NativeQuery
spycall
Se sua classe Contato estiver com todos os atributos representando todas as colunas da tabela, sem problema, essa sua query deve funcionar.
Posta a sua classe contato para a gente ver.
fabiodurgante
classe contato tem todos as colunas do banco
/* * To change this template, choose Tools | Templates * and open the template in the editor. */packagemodelo;importjava.io.Serializable;importjavax.persistence.Basic;importjavax.persistence.Column;importjavax.persistence.Entity;importjavax.persistence.GeneratedValue;importjavax.persistence.GenerationType;importjavax.persistence.Id;importjavax.persistence.NamedQueries;importjavax.persistence.NamedQuery;importjavax.persistence.Table;importjavax.xml.bind.annotation.XmlRootElement;/** * * @author Humberto */@Entity@Table(name="contato")@XmlRootElement@NamedQueries({@NamedQuery(name="Contato.findAll",query="SELECT c FROM Contato c"),@NamedQuery(name="Contato.findByCodContato",query="SELECT c FROM Contato c WHERE c.cod_contato = :cod_contato"),@NamedQuery(name="Contato.findByNome",query="SELECT c FROM Contato c WHERE c.nome = :nome"),@NamedQuery(name="Contato.findByTelefone",query="SELECT c FROM Contato c WHERE c.telefone = :telefone"),@NamedQuery(name="Contato.findByEmail",query="SELECT c FROM Contato c WHERE c.email = :email")})publicclassContatoimplementsSerializable{privatestaticfinallongserialVersionUID=1L;@Id@GeneratedValue(strategy=GenerationType.IDENTITY)@Basic(optional=false)@Column(name="cod_contato")privateIntegercod_contato;@Column(name="nome")privateStringnome;@Column(name="telefone")privateStringtelefone;@Column(name="email")privateStringemail;publicContato(){}publicContato(IntegercodContato){this.cod_contato=codContato;}publicIntegergetCodContato(){returncod_contato;}publicvoidsetCodContato(IntegercodContato){this.cod_contato=codContato;}publicStringgetNome(){returnnome;}publicvoidsetNome(Stringnome){this.nome=nome;}publicStringgetTelefone(){returntelefone;}publicvoidsetTelefone(Stringtelefone){this.telefone=telefone;}publicStringgetEmail(){returnemail;}publicvoidsetEmail(Stringemail){this.email=email;}@OverridepublicinthashCode(){inthash=0;hash+=(cod_contato!=null?cod_contato.hashCode():0);returnhash;}@Overridepublicbooleanequals(Objectobject){// TODO: Warning - this method won't work in the case the id fields are not setif(!(objectinstanceofContato)){returnfalse;}Contatoother=(Contato)object;if((this.cod_contato==null&&other.cod_contato!=null)||(this.cod_contato!=null&&!this.cod_contato.equals(other.cod_contato))){returnfalse;}returntrue;}@OverridepublicStringtoString(){return"modelo.Contato[ codContato="+cod_contato+" ]";}}
spycall
fabiodurgante:
classe contato tem todos as colunas do banco
E quando você executa aquela query, você recebe uma lista de Contatos certo?
E as classes dessa lista não estão com os outros campos preenchidos?
fabiodurgante
eu executo essa aqui
@NamedQuery(name="Contato.findAll",query="SELECT c FROM Contato c"),
aparece somente os nomes quero os nomes . enderecos, telefones, email, e nao consigo fazer isso
spycall
Endereço não vai aparecer, pois sua classe não tem esse atributo.
Os outros atributos estão como null ?
Verificou no banco de dados se esses campos não estão nulos ou em branco?
fabiodurgante
no banco de dados esta tudo certo, nenhum deles esta nulo, todos campos estao corretos
como que poderia fazer ???
drsmachado
Mas essa query deve trazer todos os atributos de contato preenchidos.
A query que será executada no banco é algo como: