Hibernate + javax.persistence.Query; funciona?

1 resposta
fabioebner

Pessoa tenho a seguinte namedQuery

@NamedQuery(name = "TbNatureza.findByTitulo", query = "SELECT t FROM TbNatureza t WHERE t.cdTituloCollection = :cdTitulo ORDER BY t.nmNatureza"),

e faco o seguinte:

Query query = ConexaoNotas.getInstance().getCurrentEM().createNamedQuery("TbNatureza.findByTitulo"); query.setParameter("cdTitulo", titulo); return naturezaDAO.getNaturezaByTitulo(query);

porem qdo eu executo recebo esse erro:

<blockquote>SEVERE: Nenhum valor especificado para parâmetro 1.

Exception in thread “AWT-EventQueue-0” javax.persistence.PersistenceException: org.hibernate.exception.DataException: could not execute query

at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:637)

at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:74) </blockquote>

alguem sabe pq?

1 Resposta

fabioebner

Pessoal fazendo alguns testes aqui acho q descobri aonde esta o erro… mas nao sei como arrumar

eu tenho 3 tabelas… sao elas tb_tiulo, tb_titulo_natureza e tb_natureza(um titulo pode ter mais de uma natureza e uma natureza pode estar em mais de um titulo, por isso da tb_titulo_natureza)

na minha entity foi criado assim:

TbNatureza

@JoinTable(name = "tb_titulo_natureza", schema="db_notas", joinColumns = {@JoinColumn(name = "cd_natureza", referencedColumnName = "cd_natureza")}, inverseJoinColumns = {@JoinColumn(name = "cd_titulo", referencedColumnName = "cd_titulo")}) @ManyToMany private Collection<TbTitulo> cdTituloCollection;

logo qdo na minha query eu dava um setParameter(“cdTitulo”, titulo) * titulo e um objeto do tipo TbTitulo, ele nao passa, me da erro… porem isso funcionava no toplink. pq no hibernate nao funciona…

alguem sabe uma solucao para eu achar as naturezas de acordo com o Titulo delas??

valeu

Criado 5 de maio de 2009
Ultima resposta 5 de mai. de 2009
Respostas 1
Participantes 1