Hi, hope everyone is well! 

I'm getting the following exception where OpenJPA complains about column
"TABLE_NAME0":


> -------------------------------------------------------------------------------
> Test set: park.model.LegalEntityTest
> -------------------------------------------------------------------------------
> Tests run: 4, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 4.906 sec
> <<< FAILURE!
> findAll(park.model.LegalEntityTest)  Time elapsed: 1.255 sec  <<< ERROR!
> <openjpa-2.0.1-r422266:989424 fatal store error>
> org.apache.openjpa.persistence.RollbackException: Column "TABLE_NAME0" not
> found; SQL statement:
> SELECT TABLE_VALUE FROM table_generator WHERE TABLE_NAME0 = ? FOR UPDATE
> [42122-131] {SELECT TABLE_VALUE FROM table_generator WHERE TABLE_NAME0 = ?
> FOR UPDATE} [code=42122, state=42S22]
>         at
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:584)
>         at park.model.LegalEntityTest.findAll(LegalEntityTest.java:125)
>         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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
>         at
> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
>         at
> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
>         at
> org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
>         at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>         at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)
>         at
> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)
>         at
> org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
>         at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
>         at
> org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
>         at
> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
>         at
> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
>         at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
>         at
> org.apache.maven.surefire.junit4.JUnit4TestSet.execute(JUnit4TestSet.java:62)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
>         at
> org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
>         at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
>         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.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:345)
>         at
> org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:1009)
> Caused by: <openjpa-2.0.1-r422266:989424 fatal general error>
> org.apache.openjpa.persistence.PersistenceException: Column "TABLE_NAME0"
> not found; SQL statement:
> SELECT TABLE_VALUE FROM table_generator WHERE TABLE_NAME0 = ? FOR UPDATE
> [42122-131] {SELECT TABLE_VALUE FROM table_generator WHERE TABLE_NAME0 = ?
> FOR UPDATE} [code=42122, state=42S22]
>         at
> org.apache.openjpa.jdbc.sql.DBDictionary.narrow(DBDictionary.java:4832)
>         at
> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:4792)
>         at
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:136)
>         at
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:110)
>         at
> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:62)
>         at
> org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:66)
>         at
> org.apache.openjpa.util.ImplHelper.generateValue(ImplHelper.java:160)
>         at
> org.apache.openjpa.util.ImplHelper.generateFieldValue(ImplHelper.java:144)
>         at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignField(JDBCStoreManager.java:774)
>         at
> org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:487)
>         at
> org.apache.openjpa.util.ApplicationIds.assign(ApplicationIds.java:463)
>         at
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.assignObjectId(JDBCStoreManager.java:758)
>         at
> org.apache.openjpa.kernel.DelegatingStoreManager.assignObjectId(DelegatingStoreManager.java:135)
>         at
> org.apache.openjpa.kernel.StateManagerImpl.assignObjectId(StateManagerImpl.java:605)
>         at
> org.apache.openjpa.kernel.StateManagerImpl.preFlush(StateManagerImpl.java:2952)
>         at
> org.apache.openjpa.kernel.PNewState.beforeFlush(PNewState.java:40)
>         at
> org.apache.openjpa.kernel.StateManagerImpl.beforeFlush(StateManagerImpl.java:1047)
>         at
> org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:2077)
>         at
> org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:2037)
>         at
> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1955)
>         at
> org.apache.openjpa.kernel.LocalManagedRuntime.commit(LocalManagedRuntime.java:81)
>         at
> org.apache.openjpa.kernel.BrokerImpl.commit(BrokerImpl.java:1479)
>         at
> org.apache.openjpa.kernel.DelegatingBroker.commit(DelegatingBroker.java:925)
>         at
> org.apache.openjpa.persistence.EntityManagerImpl.commit(EntityManagerImpl.java:560)
>         ... 29 more
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Column
> "TABLE_NAME0" not found; SQL statement:
> SELECT TABLE_VALUE FROM table_generator WHERE TABLE_NAME0 = ? FOR UPDATE
> [42122-131] {SELECT TABLE_VALUE FROM table_generator WHERE TABLE_NAME0 = ?
> FOR UPDATE} [code=42122, state=42S22]
>         at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:273)
>         at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:253)
>         at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$000(LoggingConnectionDecorator.java:70)
>         at
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection.prepareStatement(LoggingConnectionDecorator.java:305)
>         at
> org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:186)
>         at
> org.apache.openjpa.lib.jdbc.ConfiguringConnectionDecorator$ConfiguringConnection.prepareStatement(ConfiguringConnectionDecorator.java:155)
>         at
> org.apache.openjpa.lib.jdbc.DelegatingConnection.prepareStatement(DelegatingConnection.java:175)
>         at
> org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:562)
>         at
> org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:542)
>         at
> org.apache.openjpa.jdbc.sql.SQLBuffer.prepareStatement(SQLBuffer.java:531)
>         at
> org.apache.openjpa.jdbc.kernel.TableJDBCSeq.prepareStatement(TableJDBCSeq.java:806)
>         at
> org.apache.openjpa.jdbc.kernel.TableJDBCSeq.getSequence(TableJDBCSeq.java:545)
>         at
> org.apache.openjpa.jdbc.kernel.TableJDBCSeq.setSequence(TableJDBCSeq.java:587)
>         at
> org.apache.openjpa.jdbc.kernel.TableJDBCSeq$AllocateSequenceRunnable.run(TableJDBCSeq.java:892)
>         at
> org.apache.openjpa.jdbc.kernel.TableJDBCSeq.allocateSequence(TableJDBCSeq.java:454)
>         at
> org.apache.openjpa.jdbc.kernel.TableJDBCSeq.nextInternal(TableJDBCSeq.java:305)
>         at
> org.apache.openjpa.jdbc.kernel.AbstractJDBCSeq.next(AbstractJDBCSeq.java:60)
>         ... 47 more
> 
> 

This is the table generator definition[1]:


>     <table-generator
>         name="person_table_generator"
>         table="table_generator"
>         pk-column-name="table_name"
>         value-column-name="table_value"
>         pk-column-value="PERSON"
>         initial-value="1"
>         allocation-size="1"/>
> 

That table was created manually on database[2]:


> CREATE TABLE TABLE_GENERATOR (
>                 TABLE_NAME VARCHAR(50) NOT NULL,
>                 TABLE_VALUE NUMERIC(38),
>                 CONSTRAINT TABLE_GENERATOR_PK PRIMARY KEY (TABLE_NAME)
> );
> INSERT INTO TABLE_GENERATOR (TABLE_NAME, TABLE_VALUE) VALUES
> ('PRICE_TABLE', 1);
> INSERT INTO TABLE_GENERATOR (TABLE_NAME, TABLE_VALUE) VALUES ('PARKING',
> 1);
> INSERT INTO TABLE_GENERATOR (TABLE_NAME, TABLE_VALUE) VALUES ('PERSON',
> 1);
> INSERT INTO TABLE_GENERATOR (TABLE_NAME, TABLE_VALUE) VALUES ('STAY', 1);
> 

OpenJPA looks for the TABLE_NAME0 column which, of course, doesn't exists!
Any idea on what is happening here?

Thanks,

Gilberto

[1]http://code.google.com/p/construtor/source/browse/trunk/cip/park/src/main/resources/META-INF/orm.xml
[2]http://code.google.com/p/construtor/source/browse/trunk/cip/park/src/test/resources/sql/park.tab.sql

-- 
View this message in context: 
http://openjpa.208410.n2.nabble.com/Using-orm-xml-table-generator-Strange-Column-TABLE-NAME0-tp5809308p5809308.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.

Reply via email to