Я пытаюсь выполнить вложенные вызовы в базу данных, используя spring webflux /actor, чтобы вернуть Mono вложенных объектов (пользователя с его ролями).
Сценарий следующий:
- получить из базы данных строку пользователя, имеющую имя пользователя;
- сопоставить пользовательскую строку с User POJO;
- получать роли пользователя по идентификатору пользователя;
- сопоставить роли со списком ролей;
- установите сопоставленные роли на User POJO;
- вернуть моно пользователя.
Приведенный выше сценарий должен выполняться без блокировки (я знаю, что сопоставление так мало блокирует :)).
public Mono<User> retrieveByUsername(String username) {
return databaseClient.execute(usersQueries.getProperty("users.select.by.username"))
.bind("username", username.toLowerCase())
.map((row, meta) -> UserRowMapper.mapRow(row, meta))
// here goes nested database query to retrieve roles and set them to retrieved user
// and return Mono<User>
.one();
}
Спасибо заранее за вашу помощь.