This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe issues with using null parameter values.
Continue readingAuthor: Michael Bouschen
JPA Pitfalls (6): Query Result with Duplicates
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe unexpected duplicates in the result of a JPQL query.
Continue readingJPA Pitfalls (5): Object-Relational Mapping and Inheritance
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe possible performance impacts of JPA inheritance mapping strategies.
Continue readingJPA Pitfalls (4): Relationship Owner
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe issues with bidirectional relationships.
Continue readingJPA Pitfalls (3): Cascade Persist
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe issues of EM.persist with respect to relationships.
Continue readingJPA Pitfalls (2): List or Set Relationship
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe the difference between a set or list relationship.
Continue readingJPA Pitfalls (1): Serialized Collection
This blog article is part of a “series of blog articles” about common pitfalls using JPA and ways to avoid them. In this article, we describe, how easily a relation mapped as collection ends up as a blob.
Continue readingJPA Pitfalls – a Series of Serious JPA Obstacles

Most of our Java-based web-applications store their data in a relational database such as Oracle, PostgreSQL, MySQL, MariaDB or MS SQLServer. The standard way to access and modify the data is using an object-relational mapping as specified by the Java Persistence API (JPA). Over the years JPA has become a mature specification and there are a couple of JPA implementations with strong support such as Hibernate, EclipseLink, OpenJPA and DataNucleus. However, day-to-day project experience demonstrates there are number of pitfalls you might run into when using JPA.

To avoid stumbling into the same pitfall again and again, we collected them with their solutions and presented these pairs of problems and solutions. This is a start of a series of blog articles each describing a pitfall and a way to circumvent it.
New JSR Proposed: JPA 2.1
Update 01. Feb 2011
akquinet joins the JSR-338 expert group to take active part in developing the JPA 2.1 specification.
A new Java Specification Request JSR-338 has been submitted to extend the Java Persistence API (JPA).
The JSR will address a number of features requested by the community:
- Improvement of the query language and the criteria API
- Extending the object-relational mapping (custom types, transformation methods, better schema generation, UUID generator types and more)
- Dynamic definition of persistence unit and object-relational mapping
- Read-only entities
- Methods for dirty detection
- Support for fetch groups or fetch plans
- and more …
Linda DeMichiel from Oracle, already spec lead of JPA 2.0 and EJB 2.x, 3.x, is the specification lead of the JPA 2.1 expert group. The JCP review ballot closes end of the month and the expert group will be formed as soon as the JSR is approved.
akquinet has a long history in the area of persisting Java objects and object-relations mapping. Michael Bouschen from akquinet is member of the JPA 2.0 expert group, the JDO expert group(s) and the JDO TCK implementation team at apache.
akquinet is supporting this JSR and plans to join the JPA 2.1 expert group to continue the work on Java Persistence.
You must be logged in to post a comment.