Spring 反应式 @Transactional 不工作
Spring reactive @Transactional not working
我不明白为什么 @Transactional 在反应式中不起作用。保存到存储库后,我抛出一个错误。但是数据仍然出现在数据库中。
Spring v 5.3.10
我的控制器
@GetMapping("/test/save")
fun saveListNotification(): Flux<Notification> {
return service.saveListNotification(listOf(
...
))
}
我的服务
@Transactional
fun saveListNotification(listOf: List<Notification>): Flux<Notification> {
return Flux.fromIterable(listOf)
.flatMap { notificationRepository.save(it) }
.doOnNext {
if (it.rawJsonHash.equals("4")) throw Exception()
}
}
我的资料库
interface NotificationRepository : ReactiveCrudRepository<Notification?, UUID?>
我解决了我的问题
更改 @Transactional(rollbackFor = [Exception::class])
因为@Transactional default 会回滚 RuntimeException 和 Error
我不明白为什么 @Transactional 在反应式中不起作用。保存到存储库后,我抛出一个错误。但是数据仍然出现在数据库中。 Spring v 5.3.10
我的控制器
@GetMapping("/test/save")
fun saveListNotification(): Flux<Notification> {
return service.saveListNotification(listOf(
...
))
}
我的服务
@Transactional
fun saveListNotification(listOf: List<Notification>): Flux<Notification> {
return Flux.fromIterable(listOf)
.flatMap { notificationRepository.save(it) }
.doOnNext {
if (it.rawJsonHash.equals("4")) throw Exception()
}
}
我的资料库
interface NotificationRepository : ReactiveCrudRepository<Notification?, UUID?>
我解决了我的问题 更改 @Transactional(rollbackFor = [Exception::class]) 因为@Transactional default 会回滚 RuntimeException 和 Error