Ciao a tutti ragazzi evccomi dinuovo qua a chiedervi aiuto.
Nel mio applicativo ieri è stata modificata una vista nel db e da allora non riesco + ad effettuare una query su quella vista.
al momento in cui me l'hanno cambiata ho modifcato gli entity ed i session bean che mi effettuano la query ma mi va sempre in eccezione.
ho provato con le query native:
codice:
public List<VRicercaInvioCodice> FindInvioByCode(String code){
String query =("SELECT * FROM V_RICERCA_INVIO_CODICE WHERE code =' " + code +" ' ");
Query q = em.createNativeQuery(query, VRicercaInvioCodice.class);
q.setParameter("code", code);
return q.getResultList();
}
Ma mi restituisce questa eccezione:
[CODE]
08:54:19,701 ERROR [TxPolicy] javax.ejb.EJBTransactionRolledbackException: org.hibernate.QueryParameterException: could not locate named parameter [code]
08:54:19,705 ERROR [[FindByCodeInvio_srv]] Servlet.service() for servlet FindByCodeInvio_srv threw exception
javax.ejb.EJBTransactionRolledbackException: org.hibernate.QueryParameterException: could not locate named parameter [code]
at org.jboss.ejb3.tx.Ejb3TxPolicy.handleInCallerTx(Ej b3TxPolicy.java:115)
at org.jboss.aspects.tx.TxPolicy.invokeInCallerTx(TxP olicy.java:130)
at org.jboss.aspects.tx.TxInterceptor$Required.invoke (TxInterceptor.java:194)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.aspects.tx.TxPropagationInterceptor.invo ke(TxPropagationInterceptor.java:76)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInter ceptor.java:42)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.ejb3.security.RoleBasedAuthorizationInte rceptorv2.invoke(RoleBasedAuthorizationInterceptor v2.java:201)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.ejb3.security.Ejb3AuthenticationIntercep torv2.invoke(Ejb3AuthenticationInterceptorv2.java: 186)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.ejb3.ENCPropagationInterceptor.invoke(EN CPropagationInterceptor.java:41)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.ejb3.BlockContainerShutdownInterceptor.i nvoke(BlockContainerShutdownInterceptor.java:67)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.aspects.currentinvocation.CurrentInvocat ionInterceptor.invoke(CurrentInvocationInterceptor .java:67)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at org.jboss.ejb3.session.SessionSpecContainer.invoke (SessionSpecContainer.java:176)
at org.jboss.ejb3.session.SessionSpecContainer.invoke (SessionSpecContainer.java:216)
at org.jboss.ejb3.proxy.impl.handler.session.SessionP roxyInvocationHandlerBase.invoke(SessionProxyInvoc ationHandlerBase.java:207)
at org.jboss.ejb3.proxy.impl.handler.session.SessionP roxyInvocationHandlerBase.invoke(SessionProxyInvoc ationHandlerBase.java:164)
at $Proxy347.FindInvioByCode(Unknown Source)
at it.poste.tool.persistence.controller.ControllerDao .findByCodeInvio(ControllerDao.java:125)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.joinpoint.MethodInvocation.invokeTar get(MethodInvocation.java:122)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:111)
at org.jboss.ejb3.EJBContainerInvocationWrapper.invok eNext(EJBContainerInvocationWrapper.java:69)
at org.jboss.ejb3.interceptors.aop.InterceptorSequenc er.invoke(InterceptorSequencer.java:73)
at org.jboss.ejb3.interceptors.aop.InterceptorSequenc er.aroundInvoke(InterceptorSequencer.java:59)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Native MethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(De legatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.jboss.aop.advice.PerJoinpointAdvice.invoke(Per JoinpointAdvice.java:174)
at org.jboss.aop.joinpoint.MethodInvocation.invokeNex t(MethodInvocation.java:102)
at
Caused by: org.hibernate.QueryParameterException: could not locate named parameter
codice:
at org.hibernate.engine.query.ParameterMetadata.getNamedParameterDescriptor(ParameterMetadata.java:99)
at org.hibernate.engine.query.ParameterMetadata.getNamedParameterExpectedType(ParameterMetadata.java:105)
at org.hibernate.impl.AbstractQueryImpl.determineType(AbstractQueryImpl.java:437)
at org.hibernate.impl.AbstractQueryImpl.setParameter(AbstractQueryImpl.java:407)
at org.hibernate.ejb.QueryImpl.setParameter(QueryImpl.java:201)
... 132 more
Uffa dove sbaglio?
Nella query in ejbql mi dice che non trova il from ma c'è.
codice:
public List<VRicercaInvioCodice> FindInvioByCode(String code){
Query q = em.createQuery("SELECT d FROM VRicercaInvioCodice d where d.code = :code;");
q.setParameter("code", code);
return q.getResultList();
}
l'eccezione che mi lancia è questa:
codice:
09:18:51,870 ERROR [TxPolicy] javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.SQLGrammarException: could not execute query
09:18:51,888 ERROR [[FindByCodeInvio_srv]] Servlet.service() for servlet FindByCodeInvio_srv threw exception
javax.ejb.EJBTransactionRolledbackException: org.hibernate.exception.SQLGrammarException: could not execute query
...
Caused by: java.sql.SQLSyntaxErrorException: ORA-00923: parola chiave FROM non trovata dove prevista
Vi ringrazio per l'aiuto siete fantastici