In this chapter, we will cover the following recipes:
Working with a first-level cache
Working with a second-level cache
Working with a query cache
Working with the table per class hierarchy strategy of inheritance
Working with the table per subclass strategy of inheritance
Working with the table per concrete class strategy of inheritance
Working with the versioning of objects
Maintaining the history of an object
Working with an interceptor
Working with batch processing