JSR 317 Persistently Improving
JPA 2.0 will offer better mapping and modeling of object relations.
January 15, 2008 —
(Page 1 of 2)
In the days when even the largest systems had what would now be considered extremely limited resources, data handling was fairly straightforward. There once was RAM and hard storage, and, outside of virtual memory, the two never mixed. Data in RAM was there until the program ended, while data on the hard drive was considered the authoritative version.
But as resource constraints faded, all of this changed: RAM could be stored for later use, and in-memory data didn't always have to vanish when the program finished running. Today, data persistence is an issue for developers at many levels.
Persistence has blurred the lines between data at runtime and data for storage, and that's why the Java Community Process has been working to improve the practice through JSR 317, the specification for the Java Persistence API (JPA) version 2.0.
Linda DeMichiel, senior staff engineer at Sun and specification lead on JSR 317, said that the new version of JPA would be based on lessons learned in other persistence systems. Specifically, she's hoping to bring criteria-based dynamic query generation into the API.
Hibernate has a criteria API that is regarded quite well in the Hibernate community. TopLink has a similar API from which we can also learn. Of course, query by example has been around for decades, said DeMichiel.
We want to look at adding an API for so-called criteria queries. Think of them as a different way to formulate dynamic queries that is more object oriented then those used in string-based queries. Think of criteria as being formulated more in terms of a query tree: the nodes of the tree are centered around the object category. You build up a category tree at runtime. That gives a bit more user friendly manner for constructing dynamic queries, said DeMichiel.
While the JPA 2.0 specification won't be complete until the end of 2008, DeMichiel noted that she and the expert committee on the JSR 317 team have already done a great deal of work around topics related to expanding the object relational mapping functionality and the modeling of Java persistence, as she put it.