#spring_data_jpa — Public Fediverse posts
Live and recent posts from across the Fediverse tagged #spring_data_jpa, aggregated by home.social.
-
Я продал одно место на концерт 20 раз. Разбираемся, как правильно защититься от race condition в Spring Boot
Однажды я решил проверить на практике байку, которую слышал на десятке собеседований: “у нас на проде было такое-то место продано дважды, потому что…” . Оказалось, воспроизвести это не просто легко — это воспроизводится настолько надёжно и настолько наглядно, что грех было не довести дело до конца: взять систему бронирования мест, специально сломать её, замерить, насколько плохо, а потом последовательно починить тремя разными способами — и честно сравнить, что каждый из них стоит по производительности. Спойлер: один из результатов оказался прямо противоположным тому, что я ожидал увидеть.
https://habr.com/ru/articles/1063642/
#java #hibernate #spring_data_jpa #redis #optimistic_locking #pessimistic_locking #race_condition #spring_boot
-
Spring Security: дополнение к JWT токенам
Всех приветствую! Данная статья будет посвящена довольно важным вещам, таким как: refreshtoken, метод-уровневой безопасности и примеру реализации правила "свой/чужой профиль"
https://habr.com/ru/articles/1061586/
#spring #spring_security #spring_data_jpa #безопасность_вебприложений
-
Spring Security: работа с JWT токенами
Всем привет! Данная статья посвящена регистрации и аутентификации с помощью JWT что помогает нам избавиться от тяжёлых сессий и куки и быть более крутыми и современными разработчиками
https://habr.com/ru/articles/1059086/
#java #spring_boot #spring_security #security #безопасность_вебприложений #spring_data_jpa
-
Java в эпоху ИИ. К чему пришли на пятом MTC Web Services Meetup для разработчиков
Еще несколько лет назад разработчики на Java в основном обсуждали новые инструменты для создания программ, особенности архитектуры приложений и способы сделать сервисы быстрее и надежнее. Сегодня к этим темам добавился еще один важный вопрос — как искусственный интеллект меняет профессию программиста. Именно с этого началась пятая встреча в рамках MTC Web Services Meetup, которая собрала в Москве Java-разработчиков, архитекторов и инженеров. Вместо привычной серии докладов организаторы открыли вечер большой дискуссией о том, как меняется современная разработка, чему теперь стоит учиться, какую роль играют ИИ-ассистенты и как их использование влияет на безопасность решений. Обо всем этом — в материале. Читать дальше
https://habr.com/ru/companies/ru_mts/articles/1059050/
#разработка #Retry_Policy #Spring_Data_JPA #производительность #Quarkus #митап #тренды_java #мтс_true_tech
-
Spring Security: аутентификация через REST
В данной статье мы научились реализовывать аутентификацию при помощи Spring Security и протестировали её же.
https://habr.com/ru/articles/1056696/
#security #dockercompose #безопасность_вебприложений #spring #spring_data_jpa
-
Spring Secutiry: начало работы и первые шаги на практике
В данной статье поигрались с базовыми возможностями Spring Secrity и узнали фундамент на котором строится вся остальная безопасность приложения
https://habr.com/ru/articles/1055508/
#security #dockercompose #безопасность_вебприложений #spring #spring_data_jpa
-
Skill of the Week: Spring Data JPA. Никто не знает JPA, даже AI
Знание и умение разрабатывать на Spring Data JPA — это обязательный навык для разработчика, если он хочет заниматься разработкой приложений на Spring. Этого мы ожидаем и от AI-агента. Удовлетворяют ли наши AI-агента этому условию? Во многом зависит от того, насколько продвинутую модель вы используете. Значит ли это, что Opus 4.8 не совершает ошибок? Совсем нет. Более того, иногда удивляешься, почему еще вчера он настроил связь правильно, а уже сегодня сделал ту же работу, но добавил CascadeType.ALL . В сегодняшнем эпизоде еженедельной рубрики Skill of the Week разберёмся, как, используя Spring Data JPA Skill , научить своего агента важным навыкам при работе со Spring Data JPA.
https://habr.com/ru/companies/haulmont/articles/1045590/
#aiагенты #jpa #spring_data_jpa #java #spring #spring_boot #hibernate #skills
-
PostgreSQL. Интервальный тип данных. Интеграция с Spring Data JPA
В своей практике мы можем сталкиваться с хранением и поиском информации задаваемой в интревальном формате. Например: срок действия акций, тарифы на доставку и прочее. В статье мы подружим Spring JPA и Range Types .
-
Spring-boot-starter для паттерна Transaction outbox Kafka
В микросервисной архитектуре мы постоянно сталкиваемся с задачей: сохранить изменения в базе и гарантированно отправить событие в Kafka. На первый взгляд звучит просто — сделал транзакцию, отправил сообщение, закоммитил. Но в реальности между базой данных и брокером сообщений никакой общей транзакции нет. В этой статье я покажу, как я вынес всю логику Transaction Outbox в отдельный Spring Boot Starter , который можно подключить одной зависимостью. Он создаёт таблицу Outbox, конфигурирует шедулер, отвечает за отправку в Kafka и очистку, позволяя микросервисам сосредоточиться только на бизнес-логике.
https://habr.com/ru/articles/966802/
#kotlin #java #spring #springboot #starter #spring_boot_starter #kafka #outbox #jooq #spring_data_jpa
-
Как дефолтная пагинация в Spring сломала проект и как это починить
Всем привет, сегодня я хотел бы поделиться с вами историей про Spring пагинацию, почему она ужасна, как она вызвала кучу проблем и как ее починить.
https://habr.com/ru/articles/965794/
#java #kotlin #spring #springboot #spring_data_jpa #spring_data #pagination #keyset #optimization #db
-
Что такое JOOQ и как его едят на примере Kotlin + Gradle + JOOQ
Всем привет, сегодня я бы хотел поговорить про JOOQ для чего, зачем и почему и немного сравнить его с Hibernate, Spring data JPA. Долгое время я работал только с Hibernate, Spring data JPA и думал, что лучше них не будет и конкурентов ТОЧНО НЕТ, пока не встретил JOOQ. Сегодня расскажу подробнее что за инструмент, как его лучше приготовить и когда выбрать.
https://habr.com/ru/articles/965018/
#jooq #jooqcodegen #hibernate #spring_data_jpa #kotlin #java
-
[Перевод] Spring Boot 4 и Spring Framework 7: Ключевые фичи и изменения
Уже в ноябре 2025 выходит Spring Boot 4 — масштабный релиз, построенный на фундаменте Spring Framework 7.0.0 и Jakarta EE 11. Это не просто очередное обновление, а важный этап в развитии всей Java-платформы: новые возможности для REST и безопасности, улучшенная работа с Kotlin и GraalVM, мощная поддержка облаков и нативных образов, а также инструменты для создания отказоустойчивых приложений. 🧠 Эта статья — больше, чем просто перевод: в ней собрано большое кол-во комментариев от экспертов Spring АйО .
https://habr.com/ru/companies/spring_aio/articles/941310/
#java #kotlin #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa #spring_rest #spring_security
-
[Перевод] Kafka умеет синхронно. В Spring Boot
Apache Kafka — король асинхронного взаимодействия в микросервисных архитектурах. Но что если нужно получить ответ сразу? Перевод от команды Spring АйО шаг за шагом покажет, как превратить Kafka в инструмент синхронной коммуникации — с настройкой ReplyingKafkaTemplate , топиками для ответа и тайм-аутами.
https://habr.com/ru/companies/spring_aio/articles/934936/
#java #kotlin #kafka #kafka_consumer #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa
-
Аннотация Lazy как спасение от циклических зависимостей
В прошлом посте команда Spring АйО подробно разобрала, как @Lazy помогает экономить ресурсы и ускорять старт приложения. Но забыли упомянуть ещё один крайне полезный кейс применения этой аннотации — борьбу с циклическими зависимостями.
https://habr.com/ru/companies/spring_aio/articles/931170/
#spring #spring_boot #spring_framework #springboot #spring_security #spring_data #spring_data_jpa #java #kotlin
-
JEP 520: Метод-трейсинг и тайминг в JFR — замер времени конкретных методов без кода и агентов
Команда Spring АйО провела небольшое исследование JEP 520. В Java 25 JFR (Java Flight Recorder) позволит точно отслеживать выполнение конкретных методов — без изменения исходников, без логирования и без сторонних Java-агентов.
https://habr.com/ru/companies/spring_aio/articles/933306/
#java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_security #spring_data #spring_data_jpa
-
Spring Tips: Аннотация @Lazy
Хотите ускорить запуск приложения и сэкономить память? Аннотация @Lazy в Spring поможет инициализировать бины только тогда, когда они действительно понадобятся. Команда Spring АйО поможет разбобраться, как применять @Lazy точечно и глобально, в чём плюсы и подводные камни ленивой инициализации, и как избежать неожиданных ошибок на проде.
https://habr.com/ru/companies/spring_aio/articles/931162/
#java #kotlin #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa
-
[Перевод] Structured Concurrency в Java: наконец-то находит опору
API structured concurrency в Java наконец-то обрёл устойчивость. В новом переводе от команды Spring АйО подробно рассматриваются последние изменения, появившиеся с выходом JEP 505: фабричный метод open() , политики Joiner'ов, улучшенная отмена задач, дедлайны, передача контекста через ScopedValues и строгая защита от ошибок использования. Всё это делает параллельное программирование в Java более безопасным, читаемым и управляемым.
https://habr.com/ru/companies/spring_aio/articles/930812/
#java #kotlin #java_core #spring #spring_boot #spring_framework #springboot #spring_data #spring_data_jpa
-
[Перевод] Spring Data JDBC и R2DBC 4.0 получат поддержку составных идентификаторов
Эксперт Spring АйО и по совместительству Spring Data контрибьютор Михаил Поливаха прокомментировал статью, переведенную командой Spring АйО , про поддержку составных ключей со стороны Spring Data JDBC и R2DBC, начиная с версии 4.0.0-M4 — то, чего так не хватало при работе с моделями, где первичный ключ состоит из нескольких полей. Теперь достаточно просто описать record с нужными полями, пометить его как @Id , и Spring Data сам корректно построит SQL-сущность. В статье наглядно показано, как использовать новую возможность, какие аннотации пригодятся и как обойти ограничение с автоинкрементом через BeforeConvertCallback .
https://habr.com/ru/companies/spring_aio/articles/930354/
#spring #spring_boot #spring_framework #spring_data #java #kotlin #springboot #spring_data_jpa
-
[Перевод] Spring Data Ahead of Time репозитории
Команда Spring АйО перевела статью про новую версию AOT-репозиториев, которые позволяют генерировать реализацию методов запросов на этапе сборки. Это ускоряет запуск приложений, снижает потребление памяти и делает поведение репозиториев более прозрачным для разработчиков.
https://habr.com/ru/companies/spring_aio/articles/913486/
#spring #spring_boot #springboot #spring_framework #spring_data #spring_data_jpa #java #kotlin
-
Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть вторая. Альтернативы
В предыдущей статье мы обсудили недостатки решений Spring в части доступа к данным. В ходе анализа решений Spring стало очевидно, что оба фреймворка используют радикально разные подходы в работе с данными. Казалось бы, контроль над запросами очень важен для приложений, особенно высоконагруженных. Но Spring Data JPA такого контроля не даёт. Лёгкость и простота изменения кода является залогом его чистоты и работоспособности, однако с этим есть сложности уже у Spring JDBC. Всего-то нужен фреймворк, предоставляющий полный контроль над запросами со стороны разработчика и не создающий трудностей при развитии, изменении и рефакторинге кода. В этой статье мы разберём две альтернативы, которые, на мой взгляд, в меньшей степени подвержены проблемам Spring Data JPA и Spring JDBC. Это будут jOOQ и Exposed.
https://habr.com/ru/companies/sberbank/articles/906590/
#java #kotlin #spring #jooq #exposed #spring_data_jpa #spring_jdbc
-
Спасаемся от Spring: есть ли альтернативы репозиторным фреймворкам? Часть первая. Решения Spring
С точки зрения доступа к базе данных, Java-сообщество однозначно делится на два лагеря: одни любят Spring Data JPA за его простоту и низкий порог вхождения, другие предпочитают Spring JDBC за его точность и возможность тюнинга запросов. И кого останавливает, что и то, и другое — Spring? Какую сторону выбрать? И Spring Data JPA, и Spring Data JDBC, при их очевидных достоинствах, имеют недостатки, делающие разработку на них не очень подходящей для прода. Эти решения являются двумя крайностями, а нам нужна золотая середина. Вы спросите: какие альтернативы? И я отвечу: давайте посмотрим на проблему шире. Вы джавист? Вам повезло — есть хорошая альтернатива. Котлинист? Ещё лучше — есть отличная альтернатива! О них и поговорим.
https://habr.com/ru/companies/sberbank/articles/890338/
#java #kotlin #spring #jooq #exposed #spring_data_jpa #spring_jdbc
-
Через тернии к рок-звездам: рассказываем, как прошел Java Rock Stars Meetup
Привет, Хабр! На связи Рустам, Developer Advocate в Axiom JDK. В сфере зарубежного IT-рекрутинга существует термин “rockstar” и речь здесь не о музыкантах и безумных вечеринках. Это титул для лучших из лучших талантов в разработке. Мы подготовили обзор первого Java Rock Stars Meetup — эксклюзивной встречи звезд индустрии с сообществом разработчиков, которая прошла в Москве. Под катом — погружение в атмосферу и записи докладов. Смотрим как это было!
-
Построение динамических запросов к базе данных с использованием Spring Data JPA Specifications
Spring Data JPA Specifications — мощный инструмент для написания динамических запросов в реляционных базах данных. Они позволяют строить сложные SQL-запросы в декларативной форме, комбинируя их с помощью предикатов, таких как AND , OR и т.д используя Java-код. В этой статье мы рассмотрим, зачем нужны Specifications, их преимущества и недостатки, а также лучшие практики для использования.
-
Кастомные методы в JPA репозиториях
Рассмотрим варианты реализации кастомных методов в репозиториях Spring Data JPA. Как добавить кастомный метод к одному репозиторию? Как ко всем? Какие есть подводные камни?
-
Честный взгляд на Spring Data JPA
Spring Data JPA считается швейцарским ножом для работы с БД в Java. Однако Spring Data JPA не заслуживает своего триумфа и вот почему...
-
Как расширить JPA для работы с PostgreSQL
Всем привет! Меня зовут Антон, я — архитектор компании ITFB Group. Пережив несколько проектов, на которых встречается стек PostgreSQL с использованием связки PostgreSQL + JPA, мне удалось устранить большое количество проблем, связанных с неоптимальной интеграцией функциональности PostgresSQL в Java-приложения. В этой cтатье мы максимально подробно разберем, как можно настроить JPA для эффективной работы с PostgreSQL. Всем, кому интересна эта тема, добро пожаловать под кат)
https://habr.com/ru/companies/itfb/articles/825406/
#postresql #jsonb #tsquery #hibernate #jpa #spring_data_jpa #dialect #sql #java #javascript
-
Почему JOOQ — идеальный инструмент для работы с БД при интеграционном тестировании API
Привет! Меня зовут Евгений, я SDET-специалист в SimbirSoft. Хочу поделиться примером того, как я автоматизировал тестирование API, заменив встроенные JDBC-средства на JOOQ. И расскажу, почему считаю это лучшим решением. Все началось с того, что передо мной поставили задачу автоматизировать тестирование API с проверкой данных в БД. Так как проект только начинался, а я один отвечал за эту часть работы, то надо было сделать всё с нуля. Мне хотелось сделать все идеально (удобно, понятно, масштабируемо, с удобной поддержкой кода). Получилось все, кроме одного — масштабирование сверки данных из БД. Об этом и пойдет речь. А в конце вы найдете ссылку на исходный код. Читать далее 🐞
https://habr.com/ru/companies/simbirsoft/articles/817253/
#jooq #jdb #тестирование_api #интеграционное_тестирование #автотесты #spring_data_jpa
-
JOOQ. Введение
Техническое и философское осмысление библиотеки для взаимодействия с базой данных JOOQ . В введении мы бегло, но точно, пробежимся по верхам, что бы создать некоторый костях того, что в последующих статьях будет обрастать плотью.
-
Custom Kafka Deserializer и Spring’овый контекст. Как инжектить в статические поля
В блоге
https://habr.com/ru/companies/beeline_cloud/articles/815829/
-
Рецепты «приготовления» Hibernate, или решаем 5 проблем работы с фреймворком
Hibernate — очень мощный и функциональный ORM (Object-Relational Mapping) фреймворк. Он связывает базы данных с помощью объектно-ориентированных языков программирования. Однако многие, начиная с ним работать, натыкаются на проблемы производительности или отсутствия нужной функциональности. Многие из этих проблем появляются просто из-за того, что разработчики не умеют его «готовить». В статье делимся рецептами работы с Hibernate и Spring Data JPA: они помогут решить многие проблемы, возникающими при использовании фреймворка.
https://habr.com/ru/companies/magnit/articles/814573/
#java #hibernate #spring_data_jpa #orm #magnit_tech #базы_данных #ооп