Details

    • Type: New Feature New Feature
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Won't Fix
    • Affects Version/s: 2.0
    • Fix Version/s: 1.1-JPA
    • Component/s: Documentation
    • Labels:
      None
    • Similar issues:
      KULRICE-9361KNS to KRAD Conversion Guide
      KULRICE-10127Create section in document for conversion from KNS+OJB to KRAD+JPA
      KULRICE-9923Conversion Guide: Multi Value Lookup
      KULRICE-9924Conversion Guide: Other Lookup Features
      KULRICE-10543Verification of Inquiry Conversion Guide
      KULRICE-11561Check that Lookup conversion guide and conversion scripts are up to date
      KULRICE-11562Check that Inquiry conversion guide and conversion scripts are up to date
      KULRICE-11563Check that Maintenance conversion guide and conversion scripts are up to date
      KULRICE-10120Attribute Definition: Conversion Guide
      KULRICE-3876JPA - Convert KEW to use JPA

      Description

      • Just a general comment - this document needs to be written not only for a target audience that includes the KFS and KC projects, but also any existing Rice client applications that are out there in the wild
      • Include just a general overview of why we are making the change, what JPA is, information on the default implementation we are using
      • reference that we were hoping to use JPA 2.0 but it won't be available
      • document that we are dropping support for OJB so this is an impacting and forced upgrade
      • Have a quick introduction with some examples of how to map objects in JPA and what the different annotations are that we are likely to use
        • also need to document any custom annotations and the vendor specific ones that we are using
      • Document the difference between OJB and JPA and how they need to be handled
        • store and persist/merge difference
        • if you don't want a field to be persisted, you have to mark it @Transient
          • jpa assumes you want all fields persisted on pojo, unless they are marked
        • document how Boolean type persistence for Y/N is handled
      • Include documentation on how to use our new custom criteria api and how it differs from the OJB version
      • include documentation on how to write JPQL and translate from OJB criteria to JPQL (sort of a standard approach)
      • document any best practices that we recommend (i.e. JPQL over criteria, how to configure entity managers, etc.)
      • Document how to run the conversion script and exactly what it does
      • We should also be sure to include a step-by-step guide that someone follow to perform the conversion
      • include general instructions on how to write a DAO for JPA
      • document how to configure a Rice client application for JPA
        • in Spring, etc.
      • document the JPA feature that allows you to verify the jpa mappings vs. your database, this will probably mostly come in handy for development and verifications purposes

      This guide is a team wide task. It is expected for everyone working on the JPA conversion to add to this guide.

      The current guide location is:
      https://test.kuali.org/confluence/display/KULRICE/JPA+Conversion+Guide

      Here's a list of some of the JPA information we have so far compiled:

      Nate's guide (VERY good source on the conversion)
      https://test.kuali.org/confluence/display/KULRICE/JPA+Analysis

      KS JPA Guide (General info on using JPA):
      https://test.kuali.org/confluence/display/KULSTA/JPA

      https://test.kuali.org/confluence/display/KULRICE/Finish+JPA+Implementation+for+Rice+1.1

      https://test.kuali.org/confluence/display/KULRICE/Implementation+Details

      https://test.kuali.org/confluence/display/KULRICE/Rice+JPA+Issues

        Issue Links

          Activity

          Hide
          James Smith added a comment -

          This is cleaned up now (and both removed the notes addressed to me and added the TOC, hooray!) I'll probably give it a quick read later in the day to see if I notice any egregious editorial errors. When that's complete, Garey, who should I hand the documentation off to next?

          Show
          James Smith added a comment - This is cleaned up now (and both removed the notes addressed to me and added the TOC, hooray!) I'll probably give it a quick read later in the day to see if I notice any egregious editorial errors. When that's complete, Garey, who should I hand the documentation off to next?
          Hide
          James Smith added a comment -

          Okay, having reread, there's two more issues I think the doc should address, which I can write up later next week (so: no reason for this document not to go to the next person for editing...)

          1) Will we need some standard for naming composite keys (the example in the document uses

          {class name}

          +Id) so that BusinessObjectService#getByPrimaryKey can always successfully turn a Map into a PK object or is there some metadata way to do that? If a standard is required, is there some coding way we could break compilation if it isn't? Maybe we need to specify the PK class in the data dictionary?

          2) In one of the documents, Eric brought of the issue of: you're rendering a business object which has a proxied collection as a one-to-many relationship - is there a danger that the DB connection will be lost by the proxy before the rendering completes? If so, what's the strategy to deal with that? ...it probably should be documented.

          Show
          James Smith added a comment - Okay, having reread, there's two more issues I think the doc should address, which I can write up later next week (so: no reason for this document not to go to the next person for editing...) 1) Will we need some standard for naming composite keys (the example in the document uses {class name} +Id) so that BusinessObjectService#getByPrimaryKey can always successfully turn a Map into a PK object or is there some metadata way to do that? If a standard is required, is there some coding way we could break compilation if it isn't? Maybe we need to specify the PK class in the data dictionary? 2) In one of the documents, Eric brought of the issue of: you're rendering a business object which has a proxied collection as a one-to-many relationship - is there a danger that the DB connection will be lost by the proxy before the rendering completes? If so, what's the strategy to deal with that? ...it probably should be documented.
          Hide
          James Smith added a comment -

          Other than those two things, and the fact that my documentation still feels "pagey" to me - something I need to work on - should I turn this over to someone else?

          Show
          James Smith added a comment - Other than those two things, and the fact that my documentation still feels "pagey" to me - something I need to work on - should I turn this over to someone else?
          Hide
          James Smith added a comment -

          Added the Type Conversions section and the fact that we have to use Hibernate's type conversion stuff (it's not even in JPA 2, evidently).

          Also, remembered the non-boolean place we use type conversions in KFS: encrypted data is performed through a type conversion.

          Show
          James Smith added a comment - Added the Type Conversions section and the fact that we have to use Hibernate's type conversion stuff (it's not even in JPA 2, evidently). Also, remembered the non-boolean place we use type conversions in KFS: encrypted data is performed through a type conversion.
          Hide
          Jessica Coltrin (Inactive) added a comment -

          Since JPA conversion is not in the near future, closing this for now and we can create another once we're working there.

          Show
          Jessica Coltrin (Inactive) added a comment - Since JPA conversion is not in the near future, closing this for now and we can create another once we're working there.

            People

            • Assignee:
              Unassigned
              Reporter:
              Garey Taylor
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Structure Helper Panel