openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ryosuke Iwata (JIRA)" <j...@apache.org>
Subject [jira] Created: (OPENJPA-427) PostgresDictionary should set "63" as "maxAutoAssignNameLength".
Date Thu, 01 Nov 2007 13:59:50 GMT
PostgresDictionary should set "63" as "maxAutoAssignNameLength".
----------------------------------------------------------------

                 Key: OPENJPA-427
                 URL: https://issues.apache.org/jira/browse/OPENJPA-427
             Project: OpenJPA
          Issue Type: Bug
          Components: sql
    Affects Versions: 1.0.0, 1.1.0
         Environment: PostgreSQL 8.1.
            Reporter: Ryosuke Iwata
            Priority: Blocker


PostgresDictionary should set "63" (or something correct) as "maxAutoAssignNameLength", in
order to let DBDictionary#getGeneratedKeySequenceName() generate correct names for IDENTITY
sequences.

OpenJPA trims IDENTITY sequence names longer than 32 characters, while PostgreSQL uses longer
names for BIGSERIAL sequences. So, persisting entities with @Id column with GenerationType.IDENTITY
often results in a database error such as :
        org.apache.openjpa.lib.jdbc.ReportingSQLException: ERROR: relation "x_school_membershi_entityid_seq"
does not exist {prepstmnt 2398193 SELECT CURRVAL(X_SCHOOL_TRANSFER_entityId_SEQ')} [code=0,
state=42P01]

The followings are the examples. "OK"s are the sequence names which PostgreSQL uses. "NG"s
are those which OpenJPA attempts to use.

Ex.1 -
        Table : X_SCHOOL_TRANSFER_EVENT
        BIGSERIAL Column : ENTITYID
   OK : X_SCHOOL_TRANSFER_EVENT_ENTITY_ID_SEQ
   NG : 'X_SCHOOL_TRANSFER__ENTITYID_SEQ

Ex.2 -
        Table : X_SCHOOL_MEMBERSHIP
        BIGSERIAL Column : ENTITYID
   OK : X_SCHOOL_MEMBERSHIP_ENTITYID_SEQ
   NG : X_SCHOOL_MEMBERSHI_ENTITYID_SEQ


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


Mime
View raw message