X
  • JavaEE |
    Friday, October 23, 2015

DZone Survey Shows JPA Dominates Java Persistence

For those of us that have been around Java for a while it has been a long, hard road for Java persistence. In a relatively brief period of time we have seen a chaotic flux of persistence solutions - plain JDBC, homemade JDBC utilities, Apache Commons DBUtils, TopLink, Castor/JDO (Java Data Objects), EJB 2.x Entity Beans, iBatis, Spring JDBC, and so on. For most it was a relief that our industry seemed to finally converge on ORM as an imperfect but generally workable, productive solution to the very complex problem of persistence. For many others though persistence remains a highly contentious topic. It is not too surprising then that DZone took up the topic in it's wide ranging 2015 Java Ecosystem Survey. The analysis of the results of that survey will be part of the upcoming 2015 Java Ecosystem Guide to be published during JavaOne (you can register to get it here). Fortunately DZone shared the results with a selected set of MVBs (Most Valuable Bloggers) including yours truly and gave me permission to share some preview perspectives on the data. As the title of this entry suggests the survey results bode very well for JPA.

The survey asked a very simple question - "What persistence tools do you use today?". The answers included the survivors of the Java persistence wars past and some relative newcomers like jOOQ. The answers were mutually inclusive which was a wise choice that reflects reality. As the results highlighted shows, a very strong majority - almost 64% of developers voted for JPA. The closest contender lagging far behind at 37.6% was very old school plain JDBC!


Also very interesting was the fact that Hibernate native was a separate choice that received only about 17% percent of votes. This represents a successful transition from non-standard APIs to open standards based APIs. For context, even after achieving near de-facto dominant position in Java persistence the Hibernate team, Gavin King and Red Hat decided to standardize on JPA. The native Hibernate APIs were also maintained as a matter of legacy as well as a space for value-added features. For a while it was unclear whether the Hibernate community will opt to make the transition to JPA. This survey clearly shows the transition has happened, paving the way for continued healthy competition in the persistence space via JPA.

The surprisingly high usage of plain JDBC is notable as well. Clearly in this day and age one can do far better than using such a low level API. This data point represents an opportunity for further JPA adoption either through advocacy, migration or sensible evolution of the JPA open standard. It also represents an opportunity for more SQL-centric persistence solutions such as relative newcomer jOOQ.

Overall the survey shows a fairly mature Java persistence landscape that still has a few surprises in store for us all to keep an eye on.

Join the discussion

Comments ( 4 )
  • alex Sunday, October 25, 2015

    Can't say I'm surprised. Basically, the only times when you wouldn't choose some JPA implementation is when you're too resource constrained to run it. And then you go to low-level JDBC. Everything else looks like niche cases to me.


  • Lukas Eder Tuesday, October 27, 2015

    I'm surprised that you're surprised by JDBC's popularity! :-) There are many things you can do with JDBC (or jOOQ) that you cannot do with JPA, such as fetching multiple cursors or sending batches to the database, calling table-valued functions, issuing scrollable or updatable cursors and much more. Besides, the JDBC dependency is trivial for any project. JPA is a much bigger dependency.

    Curious, where did you find the 1.5% of jOOQ adoption? I didn't see that in the DZone article...


  • Camilo Correa Friday, November 13, 2015

    I´m surprised that the study is not mentioned EclipseLink. It was not an option in the survey?


  • Reza Rahman Tuesday, November 17, 2015

    Sorry for the late response, it has been a hectic few weeks.

    The DZone survey asked quite a few questions and not all of them were included in the final report. The persistence tools question was omitted likely because the responses were not that surprising? That being said anyone can get the full results data by emailing Mitch Pronschinske (mpron at dzone dot com).

    EclipseLink was not explicitly called out but was assumed to be included in the standard JPA option. Given the preponderance of Hibernate even amongst GlassFish users that was probably a fairly wise simplifying choice.


Please enter your name.Please provide a valid email address.Please enter a comment.CAPTCHA challenge response provided was incorrect. Please try again.Captcha