Hello

I will give my own opinions, by the way I don't work for any company mentioned here :)

For short:

*I will keep using using Hibernate because it has advantages over the others ORM listed. **
*


TL/TR

The value of the core are the transactions recorded with confidence in a Structured Database, the reliability of the Database is important, customers can have their balances, their loans, investments, charges. The audit guys will be happy to find in our journals the expected information. The authorities will receive the reports that extract the information.

Example:

I got the source code of Fineract/Fineract-CN/Mifos and for some reason the DataTable is not enough so then I need to modify the code... but I don't not anything about the ORM technology,wait a minute I have some bucks to pay a course at:

Udemy (search results)

252 results for hibernate
0 results for EclipseLink
0 results for OpenJPA
0 results for DataNucleus

Ok, well now it is time to find some references in Google search engine and learn about the ORM technology that Fineract/Fineract-CN/Mifos X uses

Search results

2,350,000 hibernate
138,000 OpenJPA
74,900 EclipseLink
15,400 DataNucleus

Ok let's try to find the source code, have some references, samples (ok just to learn, not to reuse because we can keep that in mind and later affect the Open Source).

Github (search results)

44,123 repositories hibernate
478 repositories Eclipselink
108 repositories OpenJPA
142 repositories datanucleus

After that I have touched the code and something goes wrong... yes, the dev list of the ORM Technology is the first option, but what about to ask to everybody at

StackOverflow (search results)

78,304 Hibernate
500 datanucleus
500 openjpa (coincidence?)
500 eclipselink (OK NO, StackOverflow has something strange in its search engine)

I consider that if the ORM technology is a MUST to be migrated, the ORM team must be invited, involved, exchange experiences to feel the same pain and help because it will benefit both projects.

Regards

Victor

On 7/1/19 1:47 a. m., Awasum Yannick wrote:
Hi Graham,

+1 EclipseLink as its supported by spring 4.x and latest spring versions and compatible with Apache license. Our upgrade to Spring 5.x or 6.x will be easier.

We dont want to build and maintain our own integration of OpenJPA with Spring 5 or 6 in the future.

On Mon, Jul 1, 2019 at 7:40 AM Juhan Aasaru <[email protected] <mailto:[email protected]>> wrote:

    Hi!

    Good job starting the discussion.
    Based on your arguments I also see EclipseLink as the best solution.
    I also found one more argument for using EclipseLink - it supports
    multi-tenancy:
    
https://www.eclipse.org/eclipselink/documentation/2.7/solutions/multitenancy.htm#CHDBJCJA

    Juhan

    Kontakt Ebenezer Graham (<[email protected]
    <mailto:[email protected]>>) kirjutas kuupäeval E, 1.
    juuli 2019 kell 07:09:

        Hello Devs,

        I have started this thread to discuss the JPA implementation
        to adopt as we work towards making Fineract CN Apache
        compliant as well as to ensure that we are all aligned as a
        community.

        I am currently working on the migration to OpenJPA as my GSoC
        project. However, a number of red flags as well and requests
        from other community members has made it critical to start
        this thread.

        As most of you know, we can't use Hibernate as it's not
        compliant therefore, it's essential that we migrate to an
        equally good ORM.
        *Our options:*
        1. EclipseLink - EPL 1.0 & BSD
        2. OpenJPA - Apache 2.0
        3. DataNucleus - Apache 2.0

        Not recommended
        4. iBatic - Apache 2.0 (still functional but retired
        https://ibatis.apache.org/)
        5. TopLink - CDDL (category B license, and simply extend
        EclipseLink)

        I used the following criteria in the following order of priority.
        1. License
        2. Implementation's performance with respect to PostgreSQL
        3. Support in Spring as well as ORM Documentation
        4. Project Maturity

        Right off the bat, I suggest the adoption of EclipseLink
        <https://wiki.eclipse.org/EclipseLink> based on new insights
        discovered, re-evaluation of our options, and compatibility
        issues discovered whiles migrating to OpenJPA.

        *Why EclipseLink? *
        According to JPA Performance benchmark -
        http://www.jpab.org/All/All/All.html EclipseLink is the Most
        Efficient ORM (amongst our valid options) when persisting to
        PostgreSQL and even outperforming Hibernate.

        Performance Summary (with respect to Postgres)
        EclipseLink - 10.5
        Hibernate -  9.1
        OpenJPA - 6.5
        DataNucleus - 6.0

        *Issues with OpenJPA.*
        1. Spring dropped support back in 2017 and requests to resume
        support was declined earlier this year
        https://github.com/spring-projects/spring-framework/issues/20584.
        There is no guarantee when it will be back in newer versions
        of Spring.  Spring 5 for instance no longer includes the
        OpenJpaVendorAdaptor. Therefore, future upgrade of Fineract CN
        will become an issue.

        2. OpenJPA has been lagging behind - the stable version for
        spring supports up to JDK 1.6 (although v3.0.0+ is working to
        resolve this issue).

        3. Bugs and compatibility issues with other libraries. I have
        first-hand experience with it and it's not pleasant.

        *Why not DataNucleus?*
        It is not supported in Spring 4.x and its implementation will
        require us to completely heavily refactor the JPA Layer in
        Fineract CN on top of that, it's the slowest.

        Looking forward to your recommendations and your own evaluations.
--
        *Regards*

Reply via email to