Webflux Kotlin Coroutines Flow не возвращает никаких результатов - PullRequest
0 голосов
/ 31 мая 2019

В моем репозитории Spring реализована функция, которая возвращает kotlinx.coroutines.flow.Flow пользователя, но кажется, что этот поток всегда пуст, даже если в моей БД есть какая-то запись.

Я использую Spring Boot2.2.0-SNAPSHOT с поддержкой сопрограмм Kotlin.Я создал два метода в своем хранилище: один для создания пользователя и один для вывода списка всех пользователей.Тот, кто создает пользователя, работает, и я могу видеть этого пользователя в моей БД.Второй список существующих пользователей возвращает пустой список, всегда, даже если в моей БД есть какие-то записи.

Я использую Docker-экземпляр PostGres 10.1 рядом с моим приложением Spring.

ПолныйПроект доступен на github: https://github.com/kizux/demo-spring-webflux-kotlin

Вот реализация метода моего репозитория:

src / main / kotlin / fr / kizux / kotlindemocoroutines / repository / UserRepository.kt

fun findAll(): Flow<User> = dbClient.select().from(TABLE_USER_NAME).asType<User>().fetch().flow()

Возвращается этим обработчиком: src / main / kotlin / fr / kizux / kotlindemocoroutines / handler / UserHandler.kt

suspend fun getAll(req: ServerRequest): ServerResponse = ServerResponse.ok().bodyAndAwait(userRepo.findAll())

И направляется по адресу: src / main / kotlin / fr / kizux/kotlindemocoroutines/configuration/RouterConfig.kt

@Bean
    fun userRoutes(userHandler: UserHandler) = coRouter {
        "/user".nest {
            GET("", userHandler::getAll)
            POST("", userHandler::create)
        }
    }

Я также пытался добавить журнал при запуске моего приложения: src / main / kotlin / fr / kizux / kotlindemocoroutines / KotlinDemoCoroutinesApplication.kt

1022 *

В настоящее время единственное возвращение, которое я получил, это пустой объект json:

http://localhost:8080/user - HTTP 200 = {}

Я думаю, мне следует получить еще что-то вроде:

http://localhost:8080/user - HTTP 200 = {"id": 1, "email ":" j@hn.doe "," signInDate ":" что угодно "}

1 Ответ

0 голосов
/ 02 июня 2019

Я изменил свою зависимость

implementation("org.springframework.data:spring-data-r2dbc:BUILD-SNAPSHOT")

на

implementation("org.springframework.data:spring-data-r2dbc:1.0.0.M2")

И теперь это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...