Select pra retorna lista de cidade de um estado

2 respostas
hhullck
Estou com um problema que esta dando o seguinte erro :
java.lang.IllegalArgumentException: org.hibernate.QueryException: Not all named parameters have been set: [sigla] [Select c From Cidades c  where c.uf.ds_uf_sigla = :sigla]
        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:624)
        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74)
        at tcc.entidades.dao.DaoEndereco.busca_Cidade(DaoEndereco.java:44)
        at tcc.telas.CadastroDeFuncionario.prepara_ComboCid(CadastroDeFuncionario.java:902)
        at tcc.telas.CadastroDeFuncionario.jCmbEstadoActionPerformed(CadastroDeFuncionario.java:647)
        at tcc.telas.CadastroDeFuncionario.access$700(CadastroDeFuncionario.java:26)
        at tcc.telas.CadastroDeFuncionario$8.actionPerformed(CadastroDeFuncionario.java:432)
        at javax.swing.JComboBox.fireActionEvent(JComboBox.java:1240)
        at javax.swing.JComboBox.setSelectedItem(JComboBox.java:567)
        at javax.swing.JComboBox.setSelectedIndex(JComboBox.java:603)
A minha classe Cidade :
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tcc.entidades;

import java.io.Serializable;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

/**
 *
 * @author Neylon
 */
@Entity
public class Cidades implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long cd_cidade;
    @ManyToOne
    @JoinColumn(name="cd_uf")
    private Uf uf;
    private String ds_cidade_nome;

    public Long getId() {
        return cd_cidade;
    }

    public void setId(Long id) {
        this.cd_cidade = id;
    }

    public Long getCd_cidade() {
        return cd_cidade;
    }

    public void setCd_cidade(Long cd_cidade) {
        this.cd_cidade = cd_cidade;
    }

    public Uf getUf() {
        return uf;
    }

    public void setUf(Uf uf) {
        this.uf = uf;
    }

    public Long getCd_uf() {
        return cd_cidade;
    }

    public void setCd_uf(Long cd_uf) {
        this.cd_cidade = cd_uf;
    }

    public String getDs_cidade_nome() {
        return ds_cidade_nome;
    }

    public void setDs_cidade_nome(String ds_cidade_nome) {
        this.ds_cidade_nome = ds_cidade_nome;
    }

    @Override
    public String toString() {
        return ds_cidade_nome;
    }



}
Minha Classe Estado :
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package tcc.entidades;

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

/**
 *
 * @author Neylon
 */
@Entity
public class Uf implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long cd_uf;
    private String ds_uf_sigla;
    private String ds_uf_nome;

    public Long getId() {
        return cd_uf;
    }

    public void setId(Long id) {
        this.cd_uf = id;
    }

    public Long getCd_uf() {
        return cd_uf;
    }

    public void setCd_uf(Long cd_uf) {
        this.cd_uf = cd_uf;
    }

    public String getDs_uf_nome() {
        return ds_uf_nome;
    }

    public void setDs_uf_nome(String ds_uf_nome) {
        this.ds_uf_nome = ds_uf_nome;
    }

    public String getDs_uf_sigla() {
        return ds_uf_sigla;
    }

    public void setDs_uf_sigla(String ds_uf_sigla) {
        this.ds_uf_sigla = ds_uf_sigla;
    }

    @Override
    public String toString() {
        return ds_uf_sigla;
    }




   

}
Pesquisa no Banco :
public List<Cidades> busca_Cidade(Uf estado) {
        EntityManager em = getEntityManager();
        em.getTransaction().begin();
        String sigla = estado.getDs_uf_sigla();
        String jpql = "Select c From Cidades c  where c.uf.ds_uf_sigla = :sigla";
        Query query = em.createQuery(jpql);
            lisCid = query.getResultList();
        em.getTransaction().commit();
        em.close();
        return lisCid;
    }//fim do metodo busca Ciade

alguma soluçao ??

2 Respostas

DarthCego

Ola amigo

parece que vc nao esta passando o parametro para a query

Query query = em.createQuery(jpql); query.setParameter("sigla", sigla); lisCid = query.getResultList();

Abraços

hhullck

Muito Obrigado DarthCego !!
Deu certinho !! :slight_smile:

Criado 7 de fevereiro de 2012
Ultima resposta 7 de fev. de 2012
Respostas 2
Participantes 2