使用带有Reactive Couchbase的Spring数据处理我的第一个应用程序,并且在存储库操作方面遇到问题。我可以在我的UserRepository中创建一个用户,并可以通过ID或名称检索它,但不能删除它。 deleteAll()也不起作用。
@N1qlPrimaryIndexed
@ViewIndexed(designDoc = "user")
interface UserRepository extends ReactiveCouchbaseRepository<User, String> {
Flux<User> findByName(String name)
}
@Service
class UserServiceImpl implements UserService {
@Autowired
private UserRepository userRepository
Mono<User> save(User user) {
return userRepository.save(user)
}
Mono<Void> delete(User user) {
return userRepository.delete(user)
}
Mono<User> findById(String id) {
return userRepository.findById(id)
}
Flux<User> findByName(String name) {
return userRepository.findByName(name)
}
}
class UserServiceTest extends ApplicationTests {
@Autowired
private UserService userService
@Test
void testSave() {
User user = new User(null, 'name')
User savedUser = userService.save(user).block()
List<User> allUsers = userRepository.findAll().collectList().block()
assert allUsers.size() == 1
userService.delete(allUsers.first())
allUsers = userRepository.findAll().collectList().block()
assert allUsers.size() == 0 // fails here
}
}
答案 0 :(得分:1)
您忘了subscribe()
(或block()
)删除Mono<Void>