openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason <jdr0...@renci.org>
Subject Re: column already exists....column reserved word
Date Fri, 27 Apr 2012 14:52:05 GMT
Rick,

When I set that property, I get the following build time error:

[ERROR] Failed to execute goal org.codehaus.mojo:openjpa-maven-plugin:1.2:sql (enhancer) on
project mapseq-dao-api: Execution enhancer of goal org.codehaus.mojo:openjpa-maven-plugin:1.2:sql
failed: org.apache.openjpa.jdbc.sql.PostgresDictionary@4896b555.supportsDelimitedIdentifiers
= false: java.sql.DatabaseMetaData.<init>(java.lang.String) ->  [Help 1]

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:openjpa-maven-plugin:1.2:sql
(enhancer) on project mapseq-dao-api: Execution enhancer of goal org.codehaus.mojo:openjpa-maven-plugin:1.2:sql
failed: org.apache.openjpa.jdbc.sql.PostgresDictionary@4896b555.supportsDelimitedIdentifiers
= false



The root cause far down the stacktrace is:

Caused by: java.lang.NoSuchMethodException: java.sql.DatabaseMetaData.<init>(java.lang.String)

     at java.lang.Class.getConstructor0(Class.java:2723)

     at java.lang.Class.getConstructor(Class.java:1674)

     at org.apache.openjpa.lib.util.Options.stringToObject(Options.java:437)


I did try to upgrade from OpenJPA v2.1.1 to v2.2.0, but got the same 
error.  Any other suggestions?

Thanks,
Jason

On 04/26/2012 03:38 PM, Rick Curtis wrote:
> Jason --
>
> I'm able to recreate your failure when running against MySQL and a hacked
> up runtime. Can you try running with the following property[1] set ?
>
> Thanks,
> Rick
>
> [1]<property name="openjpa.jdbc.DBDictionary"
> value="postgres(supportsDelimitedIdentifiers=false)"/>
>
> On Thu, Apr 26, 2012 at 10:03 AM, Jason<jdr0887@renci.org>  wrote:
>
>> Rick,
>>
>> If I wrap the reserved word in quotes (\"...\"), then the column is
>> created correctly.  Here is the generated create table sql:
>>
>> CREATE TABLE xxx (guid BIGINT NOT NULL, approved BOOL, "grant"
>> VARCHAR(64), PRIMARY KEY (guid));
>>
>> Yet, when I try to persist to that table, OpenJPA runs an "alter table"
>> command.  Since the column already exists, an exception is thrown.
>>
>> org.apache.openjpa.**persistence.**PersistenceException: ERROR: column
>> "grant" of relation "xxx" already exists {stmnt 726853985 ALTER TABLE study
>> ADD "grant" VARCHAR(64)} [code=0, state=42701]
>>     at org.apache.openjpa.jdbc.meta.**MappingTool.record(**
>> MappingTool.java:558)
>>     at org.apache.openjpa.jdbc.meta.**MappingTool.record(**
>> MappingTool.java:456)
>>     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:**210)
>>     at org.apache.openjpa.kernel.**DelegatingBrokerFactory.**newBroker(**
>> DelegatingBrokerFactory.java:**156)
>>
>>
>> Regards,
>> Jason
>>
>>
>> On 04/25/2012 02:28 PM, Rick Curtis wrote:
>>
>>> Hmm, that is a super old JIRA. I would expect that this should work. Your
>>> original post said that the exception happens when creating tables... what
>>> happens if you create the tables by hand and delimit this table name via
>>> annotations (via \"...\")? Does the manual delimiter work at runtime?
>>>
>>> Thanks,
>>> Rick
>>>
>>> On Wed, Apr 25, 2012 at 11:55 AM, Jason<jdr0887@renci.org>   wrote:
>>>
>>>   Rick,
>>>> I am using OpenJPA v2.1.1.
>>>>
>>>> I did find this open bug related to the issue:https://issues.apache.**
>>>> org/*<https://issues.apache.org/*>
>>>> *jira/browse/OPENJPA-84<https:**//issues.apache.org/jira/**
>>>> browse/OPENJPA-84<https://issues.apache.org/jira/browse/OPENJPA-84>>
>>>>
>>>>
>>>> After reading that bug, I figured that I will have to change the name of
>>>> the column to not be a reserved word until this bug is implemented/fixed.
>>>>
>>>> Regards,
>>>> Jason
>>>>
>>>>
>>>> On 04/25/2012 10:01 AM, Rick Curtis wrote:
>>>>
>>>>   Jason -
>>>>> What version of OpenJPA are you running? Can you post the full
>>>>> stacktrace?
>>>>>
>>>>> On Tue, Apr 24, 2012 at 11:56 AM, Jason<jdr0887@renci.org>    wrote:
>>>>>
>>>>>   Hi all,
>>>>>
>>>>>> I am using OpenJPA with PostgreSQL.  I have a table where a column
has
>>>>>> the
>>>>>> name of "grant".  How can I get the schema creation routine to wrap
the
>>>>>> column name "grant" in quotes?  Changing the column name is doable,
but
>>>>>> not
>>>>>> preferable.
>>>>>>
>>>>>> I have tried the brain dead solution of just using: @Column(name
=
>>>>>> "\"grant\"")
>>>>>>
>>>>>> But that results in an error...PersistenceException: column already
>>>>>> exists.
>>>>>>
>>>>>> Any suggestions?
>>>>>>
>>>>>> Regards,
>>>>>> Jason
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>
>


Mime
View raw message