В Spring Data динамические фильтры и сортировки часто строят по строкам:
Sort.by("firstName"), where("address.country").is(...). В целом это довольно удобно и поддерживается большинством модулей Spring Data.Однако потом возникают проблемы в поддержке софта. Опечатки и переименования свойств при рефакторинге спокойно собираются и ломаются только в рантайме. Да и IDE тоже почти не помогает, потому что строка для нее просто текст.
Альтернатива в Java давно есть: метамодели (Querydsl, JPA Metamodel Generator) и подходы от схемы БД (jOOQ). Они дают проверку на этапе компиляции, но обычно требуют annotation processing/плагины, влекут пересборки и добавляют зависимости и нюансы в IDE.
Так вот, в Spring Data 2026.0.0-M1 появился третий вариант: типобезопасные ссылки на свойства без генерации. Вместо строк можно передавать ссылки на методы/свойства:
Sort.by(Person::getFirstName, Person::getLastName), для вложенных путей - PropertyPath.of(Person::getAddress).then(Address::getCountry). Путь валидируется типами, а ссылки интроспектируются один раз и кэшируются. Для Kotlin всё ещё лучше.📎 Полный текст — по ссылке: https://habr.com/ru/companies/spring_aio/articles/1014920/
