java - Spring ReactiveCrudRepository ExistsQuery 方法返回 null

标签 java spring-data spring-data-mongodb

知道为什么下面的代码会返回 null 的单声道吗?我知道为什么契约(Contract)会允许它,但我希望 Spring 代码返回 true 或 false。

public interface SampleRepository extends ReactiveCrudRepository<Sample, String> {
    @ExistsQuery("{ userId: ?0 }")
    Mono<Boolean> existsWithUserId(String userId);

    @Query("{ userId: ?0 }")
    Mono<Sample> findWithUserId(String userId);
}

最佳答案

也许这是以前版本的一个错误。使用 Spring Boot 2.0.5(Spring 5.0.9、Spring Data 2.0.10)和响应式 mongo 驱动程序 3.8.2,它对我来说工作正常 - null 永远不会返回。

请注意,我明确使用较新的 mongo-driver-async 3.8.2 而不是当前的默认版本,因为后者包含另一个错误,已在较新版本中修复。

关于java - Spring ReactiveCrudRepository ExistsQuery 方法返回 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51270914/

相关文章:

mysql - 单个自定义 MySQL 查询或多个 Hibernate 查询,哪个更高效?

java - 如何在 Spring Data MongoDB 存储库查询方法中使用投影类型?

java - Spring Boot jpa接口(interface)-进行自定义查询

Spring data MongoDB更新多个字段

mongodb - Spring Data Mongo 可以只更新文档中的脏字段吗?

java - 将 double 值传递到二维数组

java - 在java中创建一个通用对象并使用它来创建另一个通用对象

java - 映射 Http 请求

java - 为什么我抛出 NullPointerException

spring-data - Spring Data MongoDB 在审计期间无法确定其新策略