Boa tarde galera,
Estou com um problema quando vou executar um criteria.list
Na classe DAO do objeto eu adiciono o Criterion
public List<FlexFieldValue> getFlexFieldByInterfaceOperation(Long idInterfaceOp){
List<Criterion> list = new ArrayList<Criterion>();
Criterion idOperation = Restrictions.eq("interfaceOperationId", idInterfaceOp);
list.add(idOperation);
return super.getCriteria(list);
}
E na classe DAO Generic ele cria a Query sql e executa o comando. O sql é criado corretamente, pq eu consigo pega-lo e executar no banco sem erros.
private Session getSession(){
if (session == null || !session.isConnected()){
SessionFactory sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
session = sessionFactory.openSession();
}
return session;
}
public List getCriteria(List<Criterion> list){
logger.info("Find By Criteria class" + this.persistentClass);
Criteria criteria = getSession().createCriteria(persistentClass);
for (Criterion c : list) {
criteria.add(c);
}
return criteria.list();
}
Segue abaixo a Excessao que ta dando.
javax.faces.el.EvaluationException: /ErrosOperacao.xhtml @80,64 action="#{interfaceOperationMB.getFlexFieldRow}": org.hibernate.PropertyAccessException: could not get a field value by reflection getter of br.com.sigga.model.InterfaceOperation.interfaceOperationId
at com.sun.facelets.el.LegacyMethodBinding.invoke(LegacyMethodBinding.java:73)
at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:91)
at javax.faces.component.UICommand.broadcast(UICommand.java:383)
at org.ajax4jsf.component.AjaxActionComponent.broadcast(AjaxActionComponent.java:55)
at org.ajax4jsf.component.UIDataAdaptor.broadcast(UIDataAdaptor.java:1359)
at org.ajax4jsf.component.AjaxViewRoot.processEvents(AjaxViewRoot.java:317)
at org.ajax4jsf.component.AjaxViewRoot.broadcastEvents(AjaxViewRoot.java:292)
at org.ajax4jsf.component.AjaxViewRoot.processPhase(AjaxViewRoot.java:249)
at org.ajax4jsf.component.AjaxViewRoot.processApplication(AjaxViewRoot.java:462)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:97)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:117)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:244)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at br.com.sigga.util.SecurityFilter.doFilter(SecurityFilter.java:41)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:154)
at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:260)
at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:366)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:493)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.PropertyAccessException: could not get a field value by reflection getter of br.com.sigga.model.InterfaceOperation.interfaceOperationId
Segue abaixo o mapeamento das classes referentes.
@ManyToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "WIP_OPERATION_ID", referencedColumnName = "INTERFACE_OPERATION_ID")
private InterfaceOperation interfaceOperationId;
Eu nao sei oq pode esta acontecendo pq sou novo com Hibernate. Alguem pode me dar uma ajuda?
OBS: no erro fala alguma coisa de getter. Todos os atributos das classes estao com getter and setters criados.
Aguardo retorno.
Obrigado galera