Demonstrates how to use Optimistic Locking in Hibernate.
The app includes:
- Products (such as Video Card, Processor, Motherboard, etc.).
- Groups (such as Computers) that contain products.
- Tags that can be assigned to groups and that are automatically inherited to the group products.
- API for adding a product to a group
- API for assigning a tag to a group
Optimistic Locking is used to properly handle concurrent transactions of adding products to groups and assigning tags to groups.