Generic CRUD model with Hibernate