Powerful extensible Data Access Layer for Spring MVC that avoids the configuration challenges of Spring data