Skip to main content

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

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

Back to the top