Closed
Description
Hello,
Please, let me know if spring-data-r2dbc transactions by default are read only?
For some reasons, data cannot be saved when I do it using ReactiveCrudRepository like so:
@Transactional
@ResponseBody
@PostMapping("/sessions")
public Mono<Session> save(@RequestBody Session session) {
return Mono.just(session)
.filter(s -> Objects.nonNull(s.getName()))
.filter(s -> Objects.nonNull(s.getSpeakers()))
.map(s -> Objects.isNull(s.getId()) ? s.setId(UUID.randomUUID()) : s)
.flatMap(sessionRepository::save);
}
I have prepared a repo, and that par is present, but commented here. Cannot understand, why it cannot be committed... but anyway, data can be successfully saved in database if I'm using DatabaseClient for that:
@ResponseBody
@PostMapping("/sessions")
public Mono<Integer> save(@RequestBody Session session) {
return Mono.just(session)
.filter(s -> Objects.nonNull(s.getName()))
.filter(s -> Objects.nonNull(s.getSpeakers()))
.map(s -> Objects.isNull(s.getId()) ? s.setId(UUID.randomUUID()) : s)
.flatMap(s -> client.execute("INSERT INTO sessions (id, name, speakers) VALUES ($1, $2, $3)")
.bind("$1", s.getId())
.bind("$2", s.getName())
.bind("$3", s.getSpeakers())
.fetch().rowsUpdated());
}
full code located here
versions
- spring-boot 2.2.0.RELEASE
- spring-boot-starter-data-r2dbc: 0.1.0.BUILD-SNAPSHOT
- r2dbc-postgresql: 0.8.0.RC2
Is it bug or I missed something?
Thanks!
Regards,
Maksim