Erro Like com Hibernate[Resolvido]

2 respostas
fabianofrizzo

Bom Dia Grande Galera..

To com um erro meio estranho aqui ja fiz tudo o que eu sabia e não consegui resolver se alguém puder me ajudar ficarei muito grato

o Método no dao que faz a busca

@Override
	public List<Pedido> findBySituacaoPedido(Integer spCod) throws Exception {
		super.hasObjectClass();
		super.hasSession();
		Criteria c = super.session.createCriteria(super.objClass)
					.add(Restrictions.like("situacaoPedido", spCod));
		
		return c.list();
	}
E o erro basico :D
11:47:36,140 INFO  [STDOUT] Hibernate: select this_.pedCod as pedCod213_2_, this
_.cliCod as cliCod213_2_, this_.pedData as pedData213_2_, this_.pedDataEntrega a
s pedDataE3_213_2_, this_.pedTotal as pedTotal213_2_, this_.spCod as spCod213_2_
, cliente2_.cliCod as cliCod212_0_, cliente2_.cliNome as cliNome212_0_, cliente2
_.cliNomeCel as cliNomeCel212_0_, cliente2_.cliEmail as cliEmail212_0_, cliente2
_.cliFone as cliFone212_0_, cliente2_.cliFax as cliFax212_0_, cliente2_.cliCel a
s cliCel212_0_, situacaope3_.spCod as spCod215_1_, situacaope3_.spDescricao as s
pDescri2_215_1_ from public.tbPedido this_ left outer join public.tbCliente clie
nte2_ on this_.cliCod=cliente2_.cliCod left outer join public.tbSituacaoPedido s
ituacaope3_ on this_.spCod=situacaope3_.spCod where this_.spCod like ?
11:47:36,156 ERROR [STDERR] org.hibernate.PropertyAccessException: could not get
 a field value by reflection getter of beans.SituacaoPedido.spCod
        at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(Direct
PropertyAccessor.java:35)
        at org.hibernate.tuple.entity.AbstractEntityTuplizer.getIdentifier(Abstr
actEntityTuplizer.java:183)
        at org.hibernate.persister.entity.AbstractEntityPersister.getIdentifier(
AbstractEntityPersister.java:3591)
        at org.hibernate.persister.entity.AbstractEntityPersister.isTransient(Ab
stractEntityPersister.java:3307)
        at org.hibernate.engine.ForeignKeys.isTransient(ForeignKeys.java:181)
        at org.hibernate.engine.ForeignKeys.getEntityIdentifierIfNotUnsaved(Fore
ignKeys.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(Lo
ader.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 dao.HGenericDao.findBySituacaoPedido(HGenericDao.java:108)
        at pedido.PedidoAction.listGravados(PedidoAction.java:100)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:278)
        at org.mentawai.filter.InjectionFilter.filter(InjectionFilter.java:120)
        at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:137)
        at org.mentawai.filter.ConverterFilter.filter(ConverterFilter.java:85)
        at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:137)
        at org.mentawai.filter.ValidatorFilter.filter(ValidatorFilter.java:154)
        at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:137)
        at org.mentawai.filter.HibernateFilter.filter(HibernateFilter.java:187)
        at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:137)
        at org.mentawai.filter.IoCFilter.filter(IoCFilter.java:83)
        at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:137)
        at org.mentawai.filter.DIFilter.filter(DIFilter.java:206)
        at org.mentawai.core.InvocationChain.invoke(InvocationChain.java:137)
        at org.mentawai.core.Controller.invokeAction(Controller.java:654)
        at org.mentawai.core.Controller.service(Controller.java:519)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrid
eFilter.java:125)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFi
lter.java:96)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:235)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:230)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:175)
        at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(Securit
yAssociationValve.java:179)
        at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValv
e.java:84)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:128)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:104)
        at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedC
onnectionValve.java:157)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
a:241)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
:844)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
ss(Http11Protocol.java:580)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:44
7)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Integer fie
ld beans.SituacaoPedido.spCod to java.lang.Integer
        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(UnsafeObjectFieldAccess
orImpl.java:18)
        at java.lang.reflect.Field.get(Field.java:358)
        at org.hibernate.property.DirectPropertyAccessor$DirectGetter.get(Direct
PropertyAccessor.java:32)
        ... 61 more

Já virei as minhas classes pensando que não tinha posto os métodos Get e Set do atributo spCod mas ele está la

Espero que alguém consiga me dar uma luz..

Muito Obrigado pela atenção de todos

2 Respostas

derheimen

Eu utilizo dessa forma e funciona perfeitamente.

public <T extends ProdutoVO> List<T> getProdPorDescArmazCompras(Class<T> objClass,
			String descProduto, String tipoSolicConsProd) throws Exception {
          List<T> produtos = null;

          Criteria criteria = this.getSession().createCriteria(objClass);
          criteria.add(Restrictions.eq("flagEstoque", tipoSolicConsProd.equals("1") ? "S" : "N"));
          criteria.add(Restrictions.eq("grupoProdSigaVO.codgGrupoProd", StringUtil.preencheDir("206",4,' ')));
          criteria.add(Expression.like("descProduto", "%"+descProduto.toUpperCase()+"%"));

          produtos = (ArrayList<T>) criteria.list();

          return produtos;
}
fabianofrizzo

Obrigado derheimen

Consegui resolver da seguinte forma

@Override  
 public List<Pedido> findBySituacaoPedido(Integer spCod) throws Exception {  
     super.hasObjectClass();  
     super.hasSession();  
     Criteria c = super.session.createCriteria(super.objClass)  
                 .add(Restrictions.like("situacaoPedido.spCod", spCod));  
       
     return c.list();  
 }

Nem tinha me ligado a isto

Criado 21 de maio de 2008
Ultima resposta 21 de mai. de 2008
Respostas 2
Participantes 2