无法从ReactiveCouchbaseRepository

时间:2018-03-29 15:09:35

标签: java groovy spring-data-couchbase

使用带有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
    }

}

1 个答案:

答案 0 :(得分:1)

您忘了subscribe()(或block())删除Mono<Void>