subPersistence is an abstract, light-weight yet flexible framework for working with O/R persistence mappers. It provides for independence of a specific O/R mapper such as Hibernate or Castor.
While you can use Hibernate or Castor (or other O/R mappers) directly, coupling your application too tightly to those can be a bad thing. subPersistence makes it easy to switch underlying O/R mappers, thereby decoupling the application layer from those. It abstracts away differences between the mappers, while still making it possible to use their specific features if needed.
The following diagram shows where subPersistence fits into the big picture (in red):