Uploaded image for project: 'Kuali Rice Development'
  1. Kuali Rice Development
  2. KULRICE-9384

Analyze usage of SequenceAccessorService and determine if we can refactor away the need to "prefetch" sequence identifier values

    Details

    • Type: Task
    • Status: Closed
    • Priority: Major
    • Resolution: Won't Fix
    • Affects Version/s: None
    • Fix Version/s: 2.4
    • Component/s: Analysis, JPA, Roadmap
    • Security Level: Public (Public: Anyone can view)
    • Labels:
      None
    • Rice Module:
      KRAD
    • KRAD Feature Area:
      Persistence Framework
    • Sprint:
      JPA Sprint 4
    • KAI Review Status:
      Not Required
    • KTI Review Status:
      Not Required
    • Include in Release Notes?:
      Yes

      Description

      It looks like this is mostly being done in KIM and KRMS at the moment. Can we refactor this code so that it doesn't prefetch this value but rather just allows the identifier to be assigned when the object is persisted/saved.

      If so, that would allow us to eliminate the dependency on the sequence accessor service for apps using the new data layer and we could deprecate SequenceAccessorService.

      If we were ultimately able to do this, that would also open the door in the future to taking advantage of things like auto incrementing identify columns instead of having to "fake" sequences in MySQL like we do now. I would really like to avoid adding a "getNextId" onto the PersistenceProviderInterface because that is something that a majority of implementers will not be able to implement easily or cleanly. So eliminating this requirement makes our lives a lot easier

        Attachments

          Activity

          ewestfal Eric Westfall created issue -
          ewestfal Eric Westfall made changes -
          Field Original Value New Value
          Priority Critical [ 2 ] Major [ 3 ]
          ewestfal Eric Westfall made changes -
          Epic Link KULRICE-9502 [ 115340 ]
          ewestfal Eric Westfall made changes -
          Original Estimate 1 day [ 28800 ]
          ewestfal Eric Westfall made changes -
          Remaining Estimate 1 day [ 28800 ]
          ewestfal Eric Westfall made changes -
          Original Estimate 1 day [ 28800 ] 3 days [ 86400 ]
          ewestfal Eric Westfall made changes -
          Original Estimate 3 days [ 86400 ] 2 days [ 57600 ]
          ewestfal Eric Westfall made changes -
          Rank Ranked higher
          ewestfal Eric Westfall made changes -
          Rank Ranked higher
          ewestfal Eric Westfall made changes -
          Sprint Sprint 1 [ 9 ]
          ewestfal Eric Westfall made changes -
          Sprint Sprint 1 [ 9 ]
          ewestfal Eric Westfall made changes -
          Rank Ranked lower
          masargen Matt Sargent made changes -
          Documentation Review Status Pending Review [ 14643 ] Not Required [ 14642 ]
          ewestfal Eric Westfall made changes -
          Rank Ranked higher
          ewestfal Eric Westfall made changes -
          Sprint JPA Sprint 4 [ 35 ]
          ewestfal Eric Westfall made changes -
          Rank Ranked higher
          ewestfal Eric Westfall made changes -
          Assignee Aaron Hamid [ ahamid ] Eric Westfall [ ewestfal ]
          Hide
          ewestfal Eric Westfall added a comment -

          Other projects are doing this as well. Even if we did factor such away, there's still no way in JPA to say "use sequences if the database supports them, use identity columns if not". So instead we implemented the @PortableSequenceGenerator which appears to be a cleaner solution here and allows us to continue with our sequence emulation layer on databases like MySQL.

          Show
          ewestfal Eric Westfall added a comment - Other projects are doing this as well. Even if we did factor such away, there's still no way in JPA to say "use sequences if the database supports them, use identity columns if not". So instead we implemented the @PortableSequenceGenerator which appears to be a cleaner solution here and allows us to continue with our sequence emulation layer on databases like MySQL.
          ewestfal Eric Westfall made changes -
          Status Open [ 1 ] Closed [ 6 ]
          Resolution Won't Fix [ 2 ]
          jcoltrin Jessica Coltrin (Inactive) made changes -
          Resolution Won't Fix [ 2 ]
          Status Closed [ 6 ] Reopened [ 4 ]
          jcoltrin Jessica Coltrin (Inactive) made changes -
          Status Reopened [ 4 ] Resolved [ 5 ]
          Fix Version/s 2.4.0-m1 [ 17035 ]
          Resolution Won't Fix [ 2 ]
          spatterson Shem Patterson (Inactive) made changes -
          Workflow custom [ 197539 ] Copy of custom for rice [ 208426 ]
          spatterson Shem Patterson (Inactive) made changes -
          Workflow Copy of custom for rice [ 208426 ] custom [ 218174 ]
          spatterson Shem Patterson (Inactive) made changes -
          Workflow custom [ 218174 ] Rice Workflow [ 227922 ]
          jcoltrin Jessica Coltrin (Inactive) made changes -
          Fix Version/s 2.4.0-m1 [ 17035 ]
          jcoltrin Jessica Coltrin (Inactive) made changes -
          Status Resolved [ 5 ] Closed [ 6 ]

            People

            • Assignee:
              ewestfal Eric Westfall
              Reporter:
              ewestfal Eric Westfall
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Time Tracking

                Estimated:
                Original Estimate - 2 days
                2d
                Remaining:
                Remaining Estimate - 1 day
                1d
                Logged:
                Time Spent - Not Specified Time Not Required
                Not Specified