[ https://issues.apache.org/jira/browse/OPENJPA-427?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Craig Russell resolved OPENJPA-427. ----------------------------------- Resolution: Fixed Fix Version/s: 1.1.0 Checked in the patch supplied by Ryosuke Iwata. svn commit -m "OPENJPA-427 Change maxAutoAssignNameLength to 63 for PostgreSQL" Sending sql/PostgresDictionary.java Transmitting file data . Committed revision 595383. > 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 > Fix For: 1.1.0 > > Attachments: mychanges.patch > > > 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.