Uploaded image for project: 'OpenJPA'
  1. OpenJPA
  2. OPENJPA-207

failure when composite ID has another composite ID as a field

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 0.9.6
    • 2.0.0-M2
    • None
    • None
    • derby
      jdk 1.5.0_07

    Description

      see attached test case: entities Library, Book, and Page. there is a one-many bidirectional relationship between Library and Book, and Book and Page. a Library's ID is simply it's name. a Book's ID is it's name, plus it's owning library's ID. A Page's ID is it's number, plus it's owning Book's ID.

      this arrangement results in composite IDs for Book and Page. and moreover, Page's composite ID, PageId, contains a page number field plus a BookId. however, this arrangement results in an exception at runtime w/ the included test case ...

      ...
      Caused by: java.lang.ClassCastException: org.apache.openjpa.util.ObjectId
      at com.mycompany.book.Page.pcCopyKeyFieldsToObjectId(Page.java)
      at org.apache.openjpa.util.ApplicationIds.create(ApplicationIds.java:383)
      at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2349)

      note that if i remove the bookId field from PageId, the test case succeeds.

      also note that this problem is also observed against a trunk field from march 3 (0.9.7 snapshot).

      Attachments

        1. book.zip
          33 kB
          Jeffrey Blattman

        Activity

          People

            ppoddar@apache.org Pinaki Poddar
            farble1670 Jeffrey Blattman
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: