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

Ryosuke Iwata resolved OPENJPA-426.
-----------------------------------

       Resolution: Duplicate
    Fix Version/s: 1.1.0

I'm very sorry that this issue has been already reported and fixed. I confirmed 
this is fixed in a nightly build of 1.1.0.
https://issues.apache.org/jira/browse/OPENJPA-282


> Incorrect DEFERRABLE usage with PostgreSQL
> ------------------------------------------
>
>                 Key: OPENJPA-426
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-426
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: sql
>    Affects Versions: 1.0.0
>         Environment: PostgreSQL database 8.1.
>            Reporter: Ryosuke Iwata
>             Fix For: 1.1.0
>
>
> OpenJPA generates incorrect CREATE TABLE statements with PostgreSQL, and you 
> will get syntax errors.
> OpenJPA adds "DEFERRABLE" to unique constraints, probably because 
> PostgresDictionary sets "true" as "supportsDeferredConstraints", while 
> PostgreSQL accepts "DEFERRABLE" only with foreign key constraints.
> The description of "CREATE TABLE" in the PostgreSQL documents is so confusing 
> : the syntax description at the top of the page makes us feel that 
> "DEFERRABLE" can be specified with any table constraints, but you can find 
> that it says "Only foreign key constraints currently accept this clause" in 
> the middle of the page. See:
>       http://www.postgresql.org/docs/8.1/interactive/sql-createtable.html
> As a result of this confusion, SQL statements which OpenJPA generates result 
> in database errors saying :
>       syntax error at or near "DEFERRABLE"
> An example of generated SQLs is :
>       CREATE TABLE PUBLIC.FOO (entityId BIGINT NOT NULL,
>       memo TEXT, name VARCHAR(255) NOT NULL,
>       entityVersion INTEGER NOT NULL,
>       PRIMARY KEY (entityId), UNIQUE (name) DEFERRABLE);
> As a workaround, you can add the following line in the persistence.xml to 
> avoid this problem:
>       <property name="openjpa.jdbc.DBDictionary" 
> value="postgres(SupportsDeferredConstraints=false)"/>

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to