Galera… preciso urgentemente de ajudas ou dicas… eh o seguinte… estamos desenvolvendo um framework e aconteceu o seguinte…
Tenho um POJO Permissao, que eh utilizado por um DaoPermissao… como tem nos fontes abaixo.
Quando faco a chamada do metodo do Dao no programa, da o seguinte erro, descrito abaixo…
Aguardo alguma dica… ajuda… o q for…
Vlws… []'s…
POJO:
public class Permissao implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name = "codigo", nullable = false)
@GeneratedValue(strategy=GenerationType.AUTO, generator="permissao_codigo_seq")
private Long codigo;
@Column(name = "acesso", nullable = false)
private long acesso;
@Column(name = "insere", nullable = false)
private boolean insere;
@Column(name = "atualiza", nullable = false)
private boolean atualiza;
@Column(name = "apaga", nullable = false)
private boolean apaga;
@Column(name = "lista", nullable = false)
private boolean lista;
@Column(name = "busca", nullable = false)
private boolean busca;
@JoinColumn(name = "arq_programa", referencedColumnName = "codigo")
@ManyToOne
private ArqPrograma arqPrograma;
( ... )
DAO:
[code] public List getPermissao(Long usuario, List ug, Long arquivo) {
Criteria c = this.session.createCriteria(Permissao.class);
Criterion user = Restrictions.eq(“acesso”, usuario);
Criterion group = Restrictions.in(“acesso”, getGrupos(ug));
Criterion file = Restrictions.eq(“arqPrograma”, arquivo);
c.add(file);
c.add(Restrictions.or(user, group));
c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
return c.list();
} [/code]
Chamada do DAO:
List<Permissao> list_permissao = daoPermissao.getPermissao(user.getCodigo(), (List<UsuarioGrupo>) user.getUsuarioGrupoCollection(), file.getCodigo());
Erro:
Exception in thread "main" org.hibernate.PropertyAccessException: could not get a field value by reflection getter of br.org.cajui.admin.modelo.ArqPrograma.codigo
at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:35)
at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(AbstractEntityTuplizer.java:183)
at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(AbstractEntityPersister.java:3591)
at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(AbstractEntityPersister.java:3307)
at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(ForeignKeys.java:218)
at org.hibernate.type.EntityType.getIdentifier(EntityType.java:397)
at org.hibernate.type.ManyToOneType.nullSafeSet(ManyToOneType.java:87)
at org.hibernate.loader.Loader.bindPositionalParameters(Loader.java:1707)
at org.hibernate.loader.Loader.bindParameterValues(Loader.java:1678)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1563)
at org.hibernate.loader.Loader.doQuery(Loader.java:673)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at br.org.cajui.admin.dao.DaoPermissao.getPermissao(DaoPermissao.java:48)
at teste_menu.getSub(teste_menu.java:76)
at teste_menu.main(teste_menu.java:38)
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field br.org.cajui.admin.modelo.ArqPrograma.codigo to java.lang.Long
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:146)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:150)
at sun.reflect.UnsafeFieldAccessorImpl.ensureObj(UnsafeFieldAccessorImpl.java:37)
at sun.reflect.UnsafeObjectFieldAccessorImpl.get(UnsafeObjectFieldAccessorImpl.java:18)
at java.lang.reflect.Field.get(Field.java:358)
at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(DirectPropertyAccessor.java:32)