After a side-by-side implementation comparison, where ACID Transactions and persistence were not strictly required, utilizing Terracotta required ~1/4 the LOC implementation of a Hibernate implementation. Terracotta required ~5 implementaion files vs. ~14 implementation files for Hibernate - several were related to DDL. Hibernate required DDL, mapping files or annotations, DAOs, dbUnit test data, and integration tests. Terracotta required POJOs and plain unit tests instead of the integration tests necessary for Hibernate. To avoid surprises, it is generally good practice to thoroughly test all Hibernate mappings and test against the target database. Also significant, is the fact that the Terracotta implementation doesn't unnecessarily tax the least scalable component of the system; the database.