Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] Problem using SqlResultsetMapping and nativeQuery

What does the code you are using to execute the query look like? (including the code that sets your parameters and the actual values of the parameters)

If you set eclipselink.logging.level to FINER, you should be able to see the SQL including which parameters are bound. Please post that information as well.

NBW wrote:
I'm getting an exception running a query which uses a SqlResultsetMapping. My query looks like:

Query q = entityManager.createNativeQuery(SELECT sh, COUNT(sh) as shCount FROM FooEntity sh, BarEntity z WHERE sh.startTimestamp >= :startDate AND sh.endTimestamp<= :endDate AND sh.Baz = z.Baz AND z.characters LIKE :likeExpr", "fooAndCountMapping");

My SqlResultSetMapping looks like this:

@SqlResultSetMapping(name="fooAndCountMapping", entities = @EntityResult(entityClass=FooEntity.class), columns = @ColumnResult(name = "shCount"))

Executing the query generates the following exception -

[#|2011-04-05T15:33:38.004-
0400|WARNING|glassfish3.1|javax.enterprise.system.container.web.com.sun.enterprise.web|_ThreadID=173;_ThreadName=Thread-1;|StandardWrapperValve[DMS]: PWC1406: Servlet.service() for servlet DMS threw exception
Local Exception Stack:
Exception [EclipseLink-4002] (Eclipse Persistence Services - 2.2.0.v20110202-r8913): org.eclipse.persistence.exceptions.DatabaseException Internal Exception: java.sql.SQLException: Missing IN or OUT parameter at index:: 1
Error Code: 17041
Call: SELECT sh, COUNT(sh) as shCount FROM FooEntity sh, BarEntity z WHERE sh.startTimestamp >= :startDate AND sh.endTimestamp<= :endDate AND sh.Baz = z.Baz AND z.characters LIKE :likeExpr Query: ResultSetMappingQuery(sql="SELECT sh, COUNT(sh) as shCount FROM FooEntity sh, BarEntity z WHERE sh.startTimestamp >= :startDate AND sh.endTimestamp<= :endDate AND sh.Baz = z.Baz AND z.characters LIKE :likeExpr") at org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java:333) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:684) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeCall(DatabaseAccessor.java:526) at org.eclipse.persistence.internal.sessions.AbstractSession.basicExecuteCall(AbstractSession.java:1729) at org.eclipse.persistence.sessions.server.ClientSession.executeCall(ClientSession.java:234) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:207) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeCall(DatasourceCallQueryMechanism.java:193) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelectCall(DatasourceCallQueryMechanism.java:264) at org.eclipse.persistence.internal.queries.DatasourceCallQueryMechanism.executeSelect(DatasourceCallQueryMechanism.java:246) at org.eclipse.persistence.queries.ResultSetMappingQuery.executeDatabaseQuery(ResultSetMappingQuery.java:212) at org.eclipse.persistence.queries.DatabaseQuery.execute(DatabaseQuery.java:808) at org.eclipse.persistence.queries.DatabaseQuery.executeInUnitOfWork(DatabaseQuery.java:711) at org.eclipse.persistence.internal.sessions.UnitOfWorkImpl.internalExecuteQuery(UnitOfWorkImpl.java:2842) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1521) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1503) at org.eclipse.persistence.internal.sessions.AbstractSession.executeQuery(AbstractSession.java:1477) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.executeReadQuery(EJBQueryImpl.java:484) at org.eclipse.persistence.internal.jpa.EJBQueryImpl.getResultList(EJBQueryImpl.java:741) at com.pfi.dms.controller.ScreenshotBean.searchPaged(ScreenshotBean.java:113)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
at org.glassfish.ejb.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1052) at org.glassfish.ejb.security.application.EJBSecurityManager.invoke(EJBSecurityManager.java:1124) at com.sun.ejb.containers.BaseContainer.invokeBeanMethod(BaseContainer.java:5367)
   at com.sun.ejb.EjbInvocation.invokeBeanMethod(EjbInvocation.java:619)
at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:801)
   at com.sun.ejb.EjbInvocation.proceed(EjbInvocation.java:571)
at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.doAround(SystemInterceptorProxy.java:162) at com.sun.ejb.containers.interceptors.SystemInterceptorProxy.aroundInvoke(SystemInterceptorProxy.java:144)
   at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
   at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.ejb.containers.interceptors.AroundInvokeInterceptor.intercept(InterceptorManager.java:862) at com.sun.ejb.containers.interceptors.AroundInvokeChainImpl.invokeNext(InterceptorManager.java:801) at com.sun.ejb.containers.interceptors.InterceptorManager.intercept(InterceptorManager.java:371) at com.sun.ejb.containers.BaseContainer.__intercept(BaseContainer.java:5339) at com.sun.ejb.containers.BaseContainer.intercept(BaseContainer.java:5327) at com.sun.ejb.containers.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:214) at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
   at $Proxy715.searchPaged(Unknown Source)
  [SNIP]
Caused by: java.sql.SQLException: Missing IN or OUT parameter at index:: 1
at oracle.jdbc.driver.OraclePreparedStatement.processCompletedBindRow(OraclePreparedStatement.java:1752) at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3444) at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3493) at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1491) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.executeSelect(DatabaseAccessor.java:889) at org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:598)
   ... 110 more
|#]


_*Environment:*_
JPA 2 bundled with GF v3.1 FCS
Oracle 10g XE

Thoughts?

-Noah


------------------------------------------------------------------------

_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users


Back to the top