A developer is implementing a repository for a `Product` entity and needs basic CRUD operations as well as JPA-specific functionalities like flushing the persistence context and batch deletes.
Which Spring Data interface is the most appropriate to extend for this use case?