[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
Re: [eclipselink-users] Problem using SqlResultsetMapping and nativeQuery
|
I think you may need to use "?" for native queries, not ":".
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
>
>
>
-----
http://wiki.eclipse.org/User:James.sutherland.oracle.com James Sutherland
http://www.eclipse.org/eclipselink/
EclipseLink , http://www.oracle.com/technology/products/ias/toplink/
TopLink
Wiki: http://wiki.eclipse.org/EclipseLink EclipseLink ,
http://wiki.oracle.com/page/TopLink TopLink
Forums: http://forums.oracle.com/forums/forum.jspa?forumID=48 TopLink ,
http://www.nabble.com/EclipseLink-f26430.html EclipseLink
Book: http://en.wikibooks.org/wiki/Java_Persistence Java Persistence
Blog: http://java-persistence-performance.blogspot.com/ Java Persistence
Performance
--
View this message in context: http://old.nabble.com/Problem-using-SqlResultsetMapping-and-nativeQuery-tp31327579p31335672.html
Sent from the EclipseLink - Users mailing list archive at Nabble.com.