Defines the interfaces for persistence engine service providers.
A persistence service provider implements the {@link org.exolab.castor.persist.spi.Persistence} interface, allowing the cache engine to load, store, create and remove objects to the underlying storage mechanism.
A query expression is constructed using {@link org.exolab.castor.persist.spi.QueryExpression}, which accepts query paramteres and constructs the proper query statement. The query expression is fed to a {@link org.exolab.castor.persist.spi.PersistenceQuery} object that is used to perform the actual query and retrieve the query results.
Both implementations are obtained from a {@link org.exolab.castor.persist.spi.PersistenceFactory}, which is set once for each type of database and is configured using Bean-like accessor methods. Each persistent storage mechanism will require one factory implementation. The factories are specified in the Castor properties file.
Castor supports many schemes for key generation through a simple {@link org.exolab.castor.persist.spi.KeyGenerator} interface.