OpenJPA
  1. OpenJPA
  2. OPENJPA-1145

Reserved keywords in the DBDictionary isn't being used for table names

    Details

    • Type: Bug Bug
    • Status: Open
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: jdbc
    • Labels:
      None

      Description

      First reported on the mailing list[1].
      --------
      I ran into a problem(I think) when doing some testing on Derby where I have
      an Entity named User and I'm having OpenJPA build my DB tables. Since 'User'
      is a reserved word on Derby, the SQL that OpenJPA generates to create my
      User table blows up[2].

      Each DBDictionary has a set of 'reserved words' but that list of words isn't
      used for table names, they are only used for column names. If a column name
      matches a reserved word, we append a 0 to the name or something like that.
      I'm wondering if we should do something similar with the table names?.

      I'm going to try to find some time soon here to look at the spec to see if
      this issue is discussed. Any thoughts or comments?

      -Rick
      [1]http://n2.nabble.com/Using-reserved-keywords-for-Entity-names-td3156045.html
      [2
      6484 embeddables TRACE [main] openjpa.jdbc.SQL - <t 24634836, conn
      9566840> executing stmnt 24008846 CREATE TABLE User (id INTEGER NOT NULL,
      USER0 VARCHAR(255), user_name VARCHAR(255), city VARCHAR(255), state
      VARCHAR(255), street VARCHAR(255), zip INTEGER, COORDINATES_ID INTEGER,
      number VARCHAR(255), type VARCHAR(255), PRIMARY KEY (id))
      6484 embeddables TRACE [main] openjpa.jdbc.SQL - <t 24634836, conn
      9566840> [0 ms] spent
      Exception in thread "main" <openjpa-0.0.0-rnull nonfatal general error>
      org.apache.openjpa.persistence.PersistenceException: Syntax error:
      Encountered "User" at line 1, column 14.

      {stmnt 24008846 CREATE TABLE User (id INTEGER NOT NULL, USER0 VARCHAR(255), user_name VARCHAR(255), city VARCHAR(255), state VARCHAR(255), street VARCHAR(255), zip INTEGER, COORDINATES_ID INTEGER, number VARCHAR(255), type VARCHAR(255), PRIMARY KEY (id))}

      [code=30000, state=42X01]
      at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:553)
      at org.apache.openjpa.jdbc.meta.MappingTool.record(MappingTool.java:453)
      at ....JDBCBrokerFactory.synchronizeMappings(JDBCBrokerFactory.java:159)

        Issue Links

          Activity

          Rick Curtis created issue -
          Rick Curtis made changes -
          Field Original Value New Value
          Link This issue is part of OPENJPA-946 [ OPENJPA-946 ]

            People

            • Assignee:
              Unassigned
              Reporter:
              Rick Curtis
            • Votes:
              2 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated:

                Development