refactoring of https://github.com/spring-by-example/spring-by-example/tree/master/persistence/spring-data-jpa