We saw in the previous chapter how Spring supports transaction strategies and JTA transaction synchronization for a variety of Object-Relational mapping (O/R mapping) tools. Rather than providing its own O/R mapping implementation, Spring integrates with popular third-party solutions:
iBATIS SQL Maps (1.3 and 2.0): A simple but powerful solution for externalizing SQL statements into XML files, including result mappings and parameter mappings for JavaBeans. Does not aim to provide an object query language or automatic change detection.
Hibernate (2.1 and 3.0): A very popular open source O/R mapping tool, featuring its own textual object query language called HQL and dedicated support for detached objects. Uses snapshot comparisons for automatic change detection.
JDO (1.0 and 2.0): The JCP specification for general object persistence, focusing on byte code modification for on-the-fly change detection, in combination with a strict lifecycle for persistent objects. JDO 2.0 is about to introduce standard support for relational databases and detached objects.
Apache OJB (1.0): O/R mapping platform with multiple client APIs:
PersistenceBroker, ODMG, and (through a plugin) JDO. Spring includes dedicated support for the
PersistenceBroker API, which offers full-fledged mapping capabilities but does not aim to provide automatic change detection.
Oracle TopLink: Mature O/R mapping tool, originally from The Object People, now owned by Oracle. Offers very flexible ...