Port the poc code, change to use Spring Data JPA approach