http://www.gg3721.com/
Home
» users.openjpa »
Strange Exception during native UPDATE-query
Sebastian Gauder
2008-08-20
Replies:
Strange Exception during native UPDATE-query --
Sebastian Gauder
2008-08-20
Strange Exception during native UPDATE-query
--
MiĆosz Tylenda
2008-08-21
Strange Exception during native UPDATE-query
--
Pinaki Poddar
2008-08-21
Strange Exception during native UPDATE-query
--
Sebastian Gauder
2008-08-22
Find Java Web Hosting
Author Login
Post Reply
Hey,
I'm getting a strange Exception when executing the follwing native query
to a MySQL db:
String statement = "UPDATE JBT_Order_Product " +
"SET product_id=100"+
" WHERE EXISTS " +
"(SELECT o.id FROM JBT_Order o " +
"WHERE o.scenario=0 " +
"AND o.id = order_id)";
Query query = em.createNativeQuery(statement);
query.executeUpdate();
JBT_Order_Product is a Join-Table consisting of the two columns
product_id -> JBT_Product.id and
order_id -> JBT_Order.id
Stacktrace:
<openjpa-1.2.0-r422266:683325 nonfatal general error>
org.apache.openjpa.persistence.PersistenceException
: PROCEDURE id does
not exist
at
org.apache.openjpa.jdbc.sql.DBDictionary
.narrow (
DBDictionary.java
:4238)
at
org.apache.openjpa.jdbc.sql.DBDictionary
.newStoreException (
DBDictionary.java
:4203)
at
org.apache.openjpa.jdbc.sql.SQLExceptions
.getStore (
SQLExceptions.java
:102)
at
org.apache.openjpa.jdbc.sql.SQLExceptions
.getStore (
SQLExceptions.java
:88)
at
org.apache.openjpa.jdbc.sql.SQLExceptions
.getStore (
SQLExceptions.java
:64)
at
org.apache.openjpa.jdbc.kernel.SQLStoreQuery
$SQLExecutor.executeUpdate(SQLStoreQuery.java:237)
at
org.apache.openjpa.kernel.QueryImpl
.update (
QueryImpl.java
:1039)
at
org.apache.openjpa.kernel.QueryImpl
.execute (
QueryImpl.java
:809)
at
org.apache.openjpa.kernel.QueryImpl
.updateAll (
QueryImpl.java
:884)
at
org.apache.openjpa.kernel.QueryImpl
.updateAll (
QueryImpl.java
:880)
at
org.apache.openjpa.kernel.DelegatingQuery
.updateAll (
DelegatingQuery.java
:565)
at
org.apache.openjpa.persistence.QueryImpl
.executeUpdate (
QueryImpl.java
:338)
at com.denkwerk.jbt.elements.benchmarks.impl.A02a.perform(A02a.java:73)
at
com.denkwerk.jbt.server.AbstractBenchmarkBeanImpl.perform(AbstractBenchmarkBeanImpl.java:24)
at
sun.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke
(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
at
java.lang.reflect.Method.invoke
(Unknown Source)
at
org.springframework.aop.support.AopUtils
.invokeJoinpointUsingReflection (
AopUtils.java
:310)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.invokeJoinpoint (
ReflectiveMethodInvocation.java
:182)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.proceed (
ReflectiveMethodInvocation.java
:149)
at
org.springframework.transaction.interceptor.TransactionInterceptor
.invoke (
TransactionInterceptor.java
:106)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.proceed (
ReflectiveMethodInvocation.java
:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy
.invoke (
JdkDynamicAopProxy.java
:204)
at $Proxy22.perform(Unknown Source)
at
sun.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke
(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
at
java.lang.reflect.Method.invoke
(Unknown Source)
at
org.springframework.aop.support.AopUtils
.invokeJoinpointUsingReflection (
AopUtils.java
:310)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.invokeJoinpoint (
ReflectiveMethodInvocation.java
:182)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.proceed (
ReflectiveMethodInvocation.java
:149)
at
org.springframework.remoting.support.RemoteInvocationTraceInterceptor
.invoke (
RemoteInvocationTraceInterceptor.java
:70)
at
org.springframework.aop.framework.ReflectiveMethodInvocation
.proceed (
ReflectiveMethodInvocation.java
:171)
at
org.springframework.aop.framework.JdkDynamicAopProxy
.invoke (
JdkDynamicAopProxy.java
:204)
at $Proxy23.perform(Unknown Source)
at
sun.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke
(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
at
java.lang.reflect.Method.invoke
(Unknown Source)
at
org.springframework.remoting.support.RemoteInvocation
.invoke (
RemoteInvocation.java
:205)
at
org.springframework.remoting.support.DefaultRemoteInvocationExecutor
.invoke (
DefaultRemoteInvocationExecutor.java
:38)
at
org.springframework.remoting.support.RemoteInvocationBasedExporter
.invoke (
RemoteInvocationBasedExporter.java
:78)
at
org.springframework.remoting.rmi.RmiBasedExporter
.invoke (
RmiBasedExporter.java
:72)
at
org.springframework.remoting.rmi.RmiInvocationWrapper
.invoke (
RmiInvocationWrapper.java
:72)
at
sun.reflect.NativeMethodAccessorImpl.invoke0
(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke
(Unknown Source)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke
(Unknown Source)
at
java.lang.reflect.Method.invoke
(Unknown Source)
at
sun.rmi.server.UnicastServerRef.dispatch
(Unknown Source)
at
sun.rmi.transport.Transport
$1.run(Unknown Source)
at
java.security.AccessController.doPrivileged
(Native Method)
at
sun.rmi.transport.Transport.serviceCall
(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown
Source)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown
Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at
java.lang.Thread.run
(Unknown Source)
Caused by:
java.sql.SQLException
: PROCEDURE id does not exist
at
com.mysql.jdbc.MysqlIO
.checkErrorPacket (
MysqlIO.java
:2975)
at
com.mysql.jdbc.MysqlIO
.sendCommand (
MysqlIO.java
:1600)
at
com.mysql.jdbc.MysqlIO
.sqlQueryDirect (
MysqlIO.java
:1695)
at
com.mysql.jdbc.Connection
.execSQL (
Connection.java
:3020)
at
com.mysql.jdbc.Connection
.execSQL (
Connection.java
:2949)
at
com.mysql.jdbc.Statement
.executeQuery (
Statement.java
:959)
at
com.mysql.jdbc.DatabaseMetaData
.getCallStmtParameterTypes (
DatabaseMetaData.java
:1233)
at
com.mysql.jdbc.DatabaseMetaData
.getProcedureColumns (
DatabaseMetaData.java
:3628)
at
com.mysql.jdbc.CallableStatement.determineParameterTypes(CallableStatement.java:628)
at com.mysql.jdbc.CallableStatement.<init>(CallableStatement.java:513)
at
com.mysql.jdbc.Connection
.parseCallableStatement (
Connection.java
:4147)
at
com.mysql.jdbc.Connection
.prepareCall (
Connection.java
:4221)
at
com.mysql.jdbc.Connection
.prepareCall (
Connection.java
:4195)
at
org.apache.commons.dbcp.DelegatingConnection
.prepareCall (
DelegatingConnection.java
:275)
at
org.apache.commons.dbcp.PoolingDataSource
$PoolGuardConnectionWrapper.prepareCall(PoolingDataSource.java:292)
at
org.apache.openjpa.lib.jdbc.DelegatingConnection
.prepareCall (
DelegatingConnection.java
:187)
at
org.apache.openjpa.lib.jdbc.DelegatingConnection
.prepareCall (
DelegatingConnection.java
:185)
at
org.apache.openjpa.lib.jdbc.DelegatingConnection
.prepareCall (
DelegatingConnection.java
:185)
at
org.apache.openjpa.lib.jdbc.DelegatingConnection
.prepareCall (
DelegatingConnection.java
:174)
at
org.apache.openjpa.jdbc.sql.SQLBuffer
.prepareCall (
SQLBuffer.java
:584)
at
org.apache.openjpa.jdbc.sql.SQLBuffer
.prepareCall (
SQLBuffer.java
:564)
at
org.apache.openjpa.jdbc.sql.SQLBuffer
.prepareCall (
SQLBuffer.java
:553)
at
org.apache.openjpa.jdbc.kernel.SQLStoreQuery
$SQLExecutor.prepareCall(SQLStoreQuery.java:335)
at
org.apache.openjpa.jdbc.kernel.SQLStoreQuery
$SQLExecutor.executeUpdate(SQLStoreQuery.java:227)
... 53 more
The term after PROCEDURE depends on which column the SELECT-clause
projects onto. So when I try "SELECT o.* FROM JBT_Order o", the
Execption is "PROCEDURE * does not exist". Note, that this only happens
with MySQL, Oracle or PostgreSQL perform fine.
Regards,
Seb
©2008 gg3721.com - Jax Systems, LLC, U.S.A.