Closed otaviojava closed 1 year ago
Add support for default methods on an interface and also extra interface:
interface BaseQuery<T> { List<T> findByScoreLessThan(int score); default List<T> lessTen() { return this.findByScoreLessThan(10); } } @Repository interface PersonRepository extends PageableRepository<Person, Long>, BaseQuery<Person> { List<Person> findByName(String name); List<Person> findByNameNot(String name); default Map<Boolean, List<Person>> partcionate(String name) { Objects.requireNonNull(name, "name is required"); Map<Boolean, List<Person>> map = new HashMap<>(); map.put(true, findByName(name)); map.put(false, findByNameNot(name)); return map; } } @Repository interface Garage extends PageableRepository<Car, Long>, BaseQuery<Car> { }
So, the project will support both:
@Inject Garage garage; @Inject PersonRepository repository; List<Person> people = repository.findByScoreLessThan(14); List<Car> cars = garage.findByScoreLessThan(14); Map<Boolean, List<Person>> parcionate = repository.partcionate("Otaviojava"); ....
Implements this issue: https://github.com/jakartaee/data/issues/148
Changes
Add support for default methods on an interface and also extra interface:
So, the project will support both:
Implements this issue: https://github.com/jakartaee/data/issues/148