TGViewer
Spring АйО Spring АйО @spring_aio · 10.9K subscribers
Post #1013 6.65K
👻 Spring Data. На пути к более строгой типизации

В 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/
  • 👍 36
  • 🔥 32
  • ❤ 8
More from @spring_aio
  1. Oct 3, 2026⚡️⚡️Строки кода стремятся подешеветь до цены токена. Что остается ценным? Про это — трек «…
  2. Oct 2, 2026🙅‍♂️ Не каждый AI-вызов должен генерировать текст Иногда от модели нужен не красивый отве…
  3. Oct 1, 2026JEP 544: JVM будет сохранять машинный код между запусками JEP 544 (Ahead-of-Time Code Comp…
  4. Sep 30, 2026🍃 Переписываем всё на Rust, JavaScript — кошмар, AI против Vaadin | Spring АйО Подкаст №7…
  5. Sep 29, 2026⚡️ AI-плагин уже в OpenIDE Pro Вышли новые версии OpenIDE и OpenIDE Pro: AI-плагин теперь…
  6. Sep 28, 2026🧑‍💻 Скрытая возможность конфигурации Spring Boot, о которой мало говорят Представим, что…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →