有什么主意,为什么下面的代码会返回null的单声道?我知道合同为什么会允许它,但是我希望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);
}
答案 0 :(得分:0)
您可以将Mono<Boolean>
更改为boolean
,它将仅返回true或false
public interface SampleRepository extends ReactiveCrudRepository<Sample, String> {
@ExistsQuery("{ userId: ?0 }")
boolean existsWithUserId(String userId);
@Query("{ userId: ?0 }")
boolean findWithUserId(String userId);
}
答案 1 :(得分:0)
也许这是先前版本中的错误。使用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而不是当前的默认版本,因为在后者中包含另一个错误,该错误已在较新版本中修复。
答案 2 :(得分:0)
如果存储库找不到该条目,它将返回一个Mono