ORA-02261: such unique or primary key already exists in the table

View: New views
2 Messages — Rating Filter:   Alert me  

ORA-02261: such unique or primary key already exists in the table

by Thomas Rost :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

With output mode 'sql-script', eclipselink generates the following sql command:

CREATE TABLE CIDSUSER.CID_ADDRESS_VCE#00 (XM_INSTANCE_TGUID VARCHAR2(255) UNIQUE NOT NULL, ADDR_SUBCODE VARCHAR2(255) NULL, XM_CREATED_BY_PID VARCHAR2(255) NULL, ADDR_ATTENTION VARCHAR2(255) NULL, STREET VARCHAR2(255) NULL, ADDR_CODE VARCHAR2(255) NULL, ADD_LAST_NAME VARCHAR2(255) NULL, XM_INSTANCE_MUT_SEQNR NUMBER(10) NULL, CITY VARCHAR2(255) NULL, COUNTRY_SUBDIV VARCHAR2(255) NULL, XM_INSTANCE_OCCURRENCE_TYPE VARCHAR2(255) NULL, POSTAL_CODE VARCHAR2(255) NULL, POBOX VARCHAR2(255) NULL, NPOSTAL_ADDR_CD VARCHAR2(255) NULL, XM_CREATED_IN_APPLMODULE VARCHAR2(255) NULL, ADD_FIRST_NAME VARCHAR2(255) NULL, XM_INIT_CREATED_IN_BUID VARCHAR2(255) NULL, DISTRICT VARCHAR2(255) NULL, ADDR_SALUTATION_CD VARCHAR2(255) NULL, XM_INSTANCE_LIFECYCLE_STATUS VARCHAR2(255) NULL, ADDR_CARE_OF VARCHAR2(255) NULL, POSTAL_ADDR_CODE VARCHAR2(255) NULL, NPOSTAL_ADDR VARCHAR2(255) NULL, CARD_STAMP_LINE VARCHAR2(255) NULL, XM_CREATED_AT_TSMP TIMESTAMP(6), ADDR_LINE5 VARCHAR2(255) NULL, ADDR_LINE4 VARCHAR2(255) NULL, ADDR_LINE3 VARCHAR2(255) NULL, ADDR_LINE2 VARCHAR2(255) NULL, ADDR_LINE1 VARCHAR2(255) NULL, SHORT_ADDR_LINE2 VARCHAR2(255) NULL, SHORT_ADDR_LINE1 VARCHAR2(255) NULL, INT_AREA_CD VARCHAR2(255) NULL, ADDR_NOTE VARCHAR2(255) NULL, ALTER_SALUTATION VARCHAR2(255) NULL, IND_TITLE_CD VARCHAR2(255) NULL, HOUSE_ID VARCHAR2(255) NULL, POSTAL_COUNTRY_CODE VARCHAR2(255) NULL, PRIMARY KEY (XM_INSTANCE_TGUID))

The execution fails with the ORA-02261 error message. If I remove the keyword unique from the command it works.persistence.xml

The annotated class (snippet):

@SuppressWarnings("serial")
@Entity
@Table(name = "CID_ADDRESS_VCE#00", schema = "CIDSUSER")
public class Address implements Serializable {

        public Address() {
        }

        /**
         * primary key
         */
        @Id
        @GeneratedValue(generator = "uuid-string")
        @Column(name = "XM_INSTANCE_TGUID", unique = true, columnDefinition = "")
        private String uid = null;
...

Thanks 4 help

Re: ORA-02261: such unique or primary key already exists in the table

by James Sutherland :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This is because the column is also the primary key, so the unique setting is redundant/not allowed.  Remove the unique=true in your @Column annotation.

I suppose we could automatically ignore the unique, if part of the primary key on Oracle to avoid this error.  So you could log a bug for this if you wish.


Thomas Rost wrote:
With output mode 'sql-script', eclipselink generates the following sql command:

CREATE TABLE CIDSUSER.CID_ADDRESS_VCE#00 (XM_INSTANCE_TGUID VARCHAR2(255) UNIQUE NOT NULL, ADDR_SUBCODE VARCHAR2(255) NULL, XM_CREATED_BY_PID VARCHAR2(255) NULL, ADDR_ATTENTION VARCHAR2(255) NULL, STREET VARCHAR2(255) NULL, ADDR_CODE VARCHAR2(255) NULL, ADD_LAST_NAME VARCHAR2(255) NULL, XM_INSTANCE_MUT_SEQNR NUMBER(10) NULL, CITY VARCHAR2(255) NULL, COUNTRY_SUBDIV VARCHAR2(255) NULL, XM_INSTANCE_OCCURRENCE_TYPE VARCHAR2(255) NULL, POSTAL_CODE VARCHAR2(255) NULL, POBOX VARCHAR2(255) NULL, NPOSTAL_ADDR_CD VARCHAR2(255) NULL, XM_CREATED_IN_APPLMODULE VARCHAR2(255) NULL, ADD_FIRST_NAME VARCHAR2(255) NULL, XM_INIT_CREATED_IN_BUID VARCHAR2(255) NULL, DISTRICT VARCHAR2(255) NULL, ADDR_SALUTATION_CD VARCHAR2(255) NULL, XM_INSTANCE_LIFECYCLE_STATUS VARCHAR2(255) NULL, ADDR_CARE_OF VARCHAR2(255) NULL, POSTAL_ADDR_CODE VARCHAR2(255) NULL, NPOSTAL_ADDR VARCHAR2(255) NULL, CARD_STAMP_LINE VARCHAR2(255) NULL, XM_CREATED_AT_TSMP TIMESTAMP(6), ADDR_LINE5 VARCHAR2(255) NULL, ADDR_LINE4 VARCHAR2(255) NULL, ADDR_LINE3 VARCHAR2(255) NULL, ADDR_LINE2 VARCHAR2(255) NULL, ADDR_LINE1 VARCHAR2(255) NULL, SHORT_ADDR_LINE2 VARCHAR2(255) NULL, SHORT_ADDR_LINE1 VARCHAR2(255) NULL, INT_AREA_CD VARCHAR2(255) NULL, ADDR_NOTE VARCHAR2(255) NULL, ALTER_SALUTATION VARCHAR2(255) NULL, IND_TITLE_CD VARCHAR2(255) NULL, HOUSE_ID VARCHAR2(255) NULL, POSTAL_COUNTRY_CODE VARCHAR2(255) NULL, PRIMARY KEY (XM_INSTANCE_TGUID))

The execution fails with the ORA-02261 error message. If I remove the keyword unique from the command it works.persistence.xml

The annotated class (snippet):

@SuppressWarnings("serial")
@Entity
@Table(name = "CID_ADDRESS_VCE#00", schema = "CIDSUSER")
public class Address implements Serializable {

        public Address() {
        }

        /**
         * primary key
         */
        @Id
        @GeneratedValue(generator = "uuid-string")
        @Column(name = "XM_INSTANCE_TGUID", unique = true, columnDefinition = "")
        private String uid = null;
...

Thanks 4 help