Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

java.lang.IllegalArgumentException: Unknown parameter name : pid

Olá, todo o código está rodando porém no final consta uma exception, não entendi o problema:

Java e JPA: Persista seus objetos com a JPA2 e Hibernate exercício 6


package prog;

import java.util.List;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;

import testaJPA1.Movimentacao;

@Entity
public class projetoJPAt {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)

    Integer id;
    String titular;
    String numero;
    String agencia;
    String banco;

    @OneToMany(mappedBy = "conta")
    List<Movimentacao> movimentacoes;


    public List<Movimentacao> getMovimentacoes() {
        return movimentacoes;
    }

    public Integer getId() {
        return id;
    }

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

    public String getTitular() {
        return titular;
    }

    public void setTitular(String titular) {
        this.titular = titular;
    }

    public String getNumero() {
        return numero;
    }

    public void setNumero(String numero) {
        this.numero = numero;
    }

    public String getAgencia() {
        return agencia;
    }

    public void setAgencia(String agencia) {
        this.agencia = agencia;
    }

    public String getBanco() {
        return banco;
    }

    public void setBanco(String banco) {
        this.banco = banco;
    }

}
package br.com.testaJPA1;


import javax.persistence.EntityManager;
import javax.persistence.Query;

import br.com.JPAutil.JPAUtil;
import prog.projetoJPAt;
import testaJPA1.Movimentacao;

public class TestaMovimentacaoContas {

    public static void main(String[] args) {





        EntityManager em = new JPAUtil().getEm();
        Query query = em.createQuery("select c from projetoJPAt c join fetch c.movimentacoes");
        projetoJPAt conta = new projetoJPAt();
        query.getResultList();
        query.setParameter("pid", 1);


        em.close();

        System.out.println(conta.getMovimentacoes().size());
    }

}
3 respostas

Oi Silvio, qual eh a exception?

solução!

Silvio, a exception é porque você não declarou o parâmetro :pid na query (na cláusula where). Faz um teste com essa query:

select c from projetoJPAt c join fetch c.movimentacoes where c.id = :pid

Espero ter ajudado.

Abraço.

isto mesmo, muito obrigado!