Мне необходимо выполнить хранимую процедуру на сервере SQL для извлечения некоторых данных, и, поскольку я позже сохраню данные в Mon go, а этот с ReactiveMongoTemplate
и так далее, я представил Пружина R2DB C.
implementation("org.springframework.data:spring-data-r2dbc:1.0.0.RELEASE")
implementation("io.r2dbc:r2dbc-mssql:0.8.1.RELEASE")
Я вижу, что могу сделать SELECT
и INSERT
и так далее с R2DB C, но возможно ли EXEC prod_name
? Я пробовал, и он зависает навсегда, а затем тест завершается , но безуспешно, но без сбоев. Последняя строка журнала:
io.r2dbc.mssql.QUERY - Executing query: EXEC "SCHEMA"."MY_PROCEDURE"
Код выглядит так:
public Flux<Coupon> selectWithProcedure() {
return databaseClient
.execute("EXEC \"SCHEMA\".\"MY_PROCEDURE\" ")
.as(Coupon.class)
.fetch().all()
.doOnNext(coupon -> {
coupon.setCouponStatusRefFromId(coupon.getCouponStatusRefId());
});
}
И, похоже, данные не извлекаются.
Если я тестирую некоторые другие методы с простыми запросами, такими как SELECT...
, это работает. Но проблема в том, что администраторы БД не позволяют моему приложению читать данные таблиц, вместо этого они создают для меня процедуру. Если этот запрос невозможен, я должен go традиционным способом JPA и реагировать на сторону Mon go потерял смысл.