Erro
IllegalArgumentException in class: model.beans.PessoaVO, getter method of property: id
org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of model.beans.PessoaVO.id
javax.faces.el.EvaluationException: org.hibernate.PropertyAccessException: IllegalArgumentException occurred calling getter of model.beans.PessoaVO.id
método problemático
public ArrayList<EnvolvimentoVO> buscaPorPessoa(long codigo) {
String hql = "select u from EnvolvimentoVO as u where u.compositeID.pessoa = :codigo";
Query q = getSession().createQuery(hql);
q.setParameter("codigo", codigo);
return (ArrayList<EnvolvimentoVO>) q.list();
}
arquivo de mapeamento
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 27/05/2006 16:45:18 by Hibernate Tools 3.1.0 beta3 -->
<hibernate-mapping>
<class name="model.beans.EnvolvimentoVO" schema="PUBLIC" table="ENVOLVIMENTOS">
<composite-id class="model.beans.EnvolvimentoID" name="compositeID">
<key-many-to-one class="model.beans.FatoVO" column="COD_FATO" name="fato"/>
<key-many-to-one class="model.beans.PessoaVO" column="COD_PESSOA" name="pessoa"/>
</composite-id>
<property name="cond_pessoa" type="java.lang.String"/>
<property name="categoria" type="integer"/>
</class>
</hibernate-mapping>
Classes
public class EnvolvimentoVO {
private EnvolvimentoID compositeID;
private String cond_pessoa;
private int categoria;
...
}
public class EnvolvimentoID implements Serializable {
private PessoaVO pessoa; //cod_pessoa (id) está em PessoaVO
private FatoVO fato;
...
}
Acho q a query está errada. Como faço para arrumar?
Passar PessoaVO como parametro no método e não id
