ResultTransformer для получения проекции ManyToMany (пример на Hibernate и Spring Boot)

Здесь напишем более сложный ResultTransformer, чем в предыдущем примере. Помимо коллекции @OneToMany сущность будет содержать еще коллекцию @ManyToMany.

Кроме того, попробуем получить результат еще одним способом — без ResultTransformer, а с помощью операций над Stream.
Читать далее «ResultTransformer для получения проекции ManyToMany (пример на Hibernate и Spring Boot)»

Transaction Propagation

В этой статье рассмотрим настройку propagation аннотации @Transactional. Аннотация @Transactional (без настроек) заставляет метод выполняться в рамках транзакции.
Читать далее «Transaction Propagation»

@Transactional, уровни изоляции

В этой статье рассмотрим уровни изоляции на примере задачи: написать веб-приложение с одной веб-страницей, которое выдает число обращений к ней (или хитов).
Читать далее «@Transactional, уровни изоляции»

Введение в QueryDSL

Есть несколько способов составить JPA-запрос, среди них — неудобный JPA Criteria API. Все признают, что запросы, составленные таким способом, плохо читаются. Как альтернатива появилась библиотека QueryDSL — она гораздо удобнее.
Читать далее «Введение в QueryDSL»

Аннотация @Query

Мы рассматривали запросы, генерируемые из имени метода. Так удобно писать простые запросы. Но если в запросе более 1-2 параметров или несколько join,  то удобнее использовать аннотацию @Query.
Читать далее «Аннотация @Query»

@SqlResultSetMapping — превращение результата SQL-запроса в объект

В этой статье пойдет речь о том, как превратить результат нативного SQL-запроса в объект.
Читать далее «@SqlResultSetMapping — превращение результата SQL-запроса в объект»

Single Sign-On с поставщиком Keycloak

В этой статье рассмотрим Single Sign-On с сервером авторизации Keycloak.

Пример состоит из трех частей:

  • сервер авторизации (Keycloak)
  • клиент
  • сервер ресурсов (необязательная часть)

Читать далее «Single Sign-On с поставщиком Keycloak»

Single Sign-On с поставщиком VK

В этой статье рассмотрим Single Sign-On (SSO) с помощью поставщика VKontakte (но также тут есть вход с помощью GitHub и Google). Приложение представляет собой Spring Boot OAuth 2 клиент c Ajax-запросами на JQuery.
Читать далее «Single Sign-On с поставщиком VK»

OAuth 2 Authorization Code Flow. Пример на Spring Boot

В этой статье рассмотрим OAuth 2 Authorization Code Flow на примере из официального репозитория сервера авторизации (от октября 2020). Пример переделан на Maven, кроме того, включено логирование запросов в консоль.
Читать далее «OAuth 2 Authorization Code Flow. Пример на Spring Boot»

CSRF-токен

В этой статье рассмотрим, что такое Сross-Site Request Forgery и как включить в Spring Boot приложение CSRF-токен — защиту от этого мошенничества. Назвать этот токен можно было бы «анти-CSRF-токен».

Читать далее «CSRF-токен»