Wherever possible, all interaction with POJOs and services will be against an interface. This allows the switching of implementations using the configuration of Spring.
Below the public services layer, components will operate on POJOs. All basic DAO operations will be available on these objects directly. This means that components can attribute and relationship modification, deletions and additions can be performed without having any knowledge of the persistence mechanisms involved. Transactions will be handled by Spring and Hibernate interaction.