[ 
https://issues.apache.org/jira/browse/OPENJPA-2588?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Albert Lee updated OPENJPA-2588:
--------------------------------
    Attachment: KeywordAttributeTest.jar

Run this test case twice in a row to reproduce the problem.

> Entity attribute using keyword as name failed on Mapping tool even name is 
> quoted using @Column(name="\"GROUP\"")
> -----------------------------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-2588
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-2588
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 2.2.2, 2.3.0, 2.4.0
>            Reporter: Albert Lee
>         Attachments: KeywordAttributeTest.jar
>
>
> Have a entity using keyword as attribute name but overridden with @Column to 
> quote the keyword as in:
> @Entity
> public class KeyWord { .....
>       @Column(name="\"GROUP\"")
>       private String group;
> }
> The first time createEmf and createEm create the table with proper column 
> name (i.e. GROUP).  When the second time (table already existed) the same 
> test case is run, the following exception is thrown.
> 1310  TRACE  [main] openjpa.jdbc.SQL - <t 706835911, conn 352584430> 
> executing stmnt 1628232398 ALTER TABLE KeyWord ADD "GROUP" VARCHAR(255)
> 1341  TRACE  [main] openjpa.jdbc.SQL - <t 706835911, conn 352584430> [31 ms] 
> spent
> Exception in thread "main" <openjpa-2.2.3-SNAPSHOT-r422266:1595313 nonfatal 
> general error> org.apache.openjpa.persistence.PersistenceException: Column 
> 'GROUP' already exists in Table/View '"APP"."KEYWORD"'. {stmnt 1628232398 
> ALTER TABLE KeyWord ADD "GROUP" VARCHAR(255)} [code=30000, state=X0Y32]
>       at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:559)
>       at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:455)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:160)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:164)
>       at 
> org.apache.openjpa.jdbc.kernel.JDBCBrokerFactory.newBrokerImpl(JDBCBrokerFactory.java:122)
>       at 
> org.apache.openjpa.kernel.AbstractBrokerFactory.newBroker(AbstractBrokerFactory.java:209)
>       at 
> org.apache.openjpa.kernel.DelegatingBrokerFactory.newBroker(DelegatingBrokerFactory.java:156)
>       at 
> org.apache.openjpa.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:227)
>       at 
> com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:51)
>       at 
> com.ibm.ws.persistence.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:35)
>       at test.Main.main(Main.java:16)
> Caused by: org.apache.openjpa.lib.jdbc.ReportingSQLException: Column 'GROUP' 
> already exists in Table/View '"APP"."KEYWORD"'. {stmnt 1628232398 ALTER TABLE 
> KeyWord ADD "GROUP" VARCHAR(255)} [code=30000, state=X0Y32]
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:219)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.wrap(LoggingConnectionDecorator.java:203)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator.access$700(LoggingConnectionDecorator.java:59)
>       at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingStatement.executeUpdate(LoggingConnectionDecorator.java:914)
>       at 
> org.apache.openjpa.lib.jdbc.DelegatingStatement.executeUpdate(DelegatingStatement.java:118)
>       at 
> org.apache.openjpa.jdbc.schema.SchemaTool.executeSQL(SchemaTool.java:1224)
>       at 
> org.apache.openjpa.jdbc.schema.SchemaTool.addColumn(SchemaTool.java:1057)
>       at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:506)
>       at org.apache.openjpa.jdbc.schema.SchemaTool.add(SchemaTool.java:366)
>       at org.apache.openjpa.jdbc.schema.SchemaTool.run(SchemaTool.java:343)
>       at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:505)
>       ... 10 more



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to