You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@openjpa.apache.org by Christian Defoy <ch...@gmail.com> on 2007/09/07 19:50:31 UTC
Invalid SQL generated
Hi,
I get an invalid SQL statement when I do the following:
1- create a new instance of C
2- create a new instance of A
3- put a link from C to A
4- load a persistent instance of B
5- detach B
6- put a link from B to A
7- put a link from A to B
8- persist C
When I commit my transaction, I get an error on the following statement:
UPDATE B SET WHERE b_id = ?
The database throws an exception. From what I traced so far, this
comes from the reference that I put from B to A. Is this scenario
something that I should be able to do? Is there a better way to do
this?
Exception in thread "main" <0.9.7-incubating fatal store error>
org.apache.openjpa.persistence.RollbackException: The transaction has
been rolled back. See the nested exceptions for details on the errors
that occurred.
at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:420)
at ex11.AHelper.main(AHelper.java:44)
Caused by: <0.9.7-incubating fatal general error>
org.apache.openjpa.persistence.PersistenceException: The transaction
has been rolled back. See the nested exceptions for details on the
errors that occurred.
at org.apache.openjpa.kernel.BrokerImpl.newFlushException(BrokerImpl.java:2118)
at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1965)
at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1863)
at org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1781)
at org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:80)
at org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1311)
at org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:866)
at org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:409)
... 1 more
Caused by: <0.9.7-incubating nonfatal general error>
org.apache.openjpa.persistence.PersistenceException: Unexpected token:
WHERE in statement [UPDATE B SET WHERE b_id = ?] {UPDATE B SET WHERE
b_id = ?} [code=-11, state=37000]
at org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3784)
at org.apache.openjpa.jdbc.sql.HSQLDictionary.newStoreException(HSQLDictionary.java:308)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:83)
at org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:59)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:73)
at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flushPrimaryRow(OperationOrderUpdateManager.java:203)
at org.apache.openjpa.jdbc.kernel.OperationOrderUpdateManager.flush(OperationOrderUpdateManager.java:89)
at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:89)
at org.apache.openjpa.jdbc.kernel.AbstractUpdateManager.flush(AbstractUpdateManager.java:72)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager.flush(JDBCStoreManager.java:514)
at org.apache.openjpa.kernel.DelegatingStoreManager.flush(DelegatingStoreManager.java:130)
... 8 more
Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException:
Unexpected token: WHERE in statement [UPDATE B SET WHERE b_id = ?]
{UPDATE B SET WHERE b_id = ?} [code=-11, state=37000]
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:200)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$000(LoggingConnectionDecorator.java:56)
at org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection.prepareStatement(LoggingConnectionDecorator.java:227)
at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:163)
at org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.prepareStatement(ConfiguringConnectionDecorator.java:140)
at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:163)
at org.apache.openjpa.jdbc.kernel.JDBCStoreManager$RefCountConnection.prepareStatement(JDBCStoreManager.java:1308)
at org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:152)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flushInternal(PreparedStatementManagerImpl.java:90)
at org.apache.openjpa.jdbc.kernel.PreparedStatementManagerImpl.flush(PreparedStatementManagerImpl.java:71)
... 14 more
Thanks in advance!
Christian