我正在尝试进行mongo查询(使用Spring Data)以通过Vavr的Option值搜索记录。我的值是Option userId,我想知道是否可以通过此参数在数据库中搜索。
我已经在MongoDB和Spring文档中提供服务,但是这些都不是关于Option之类的Vavr类型的。此查询均无效。
Option<Result> FindFirstByUserIdAndCreationDateDesc(String userId);
Option<Result> FindFirstByOptionUserIdAndCreationDateDesc(String userId);
其中userId是Vavr选项
Option<String> userId;
答案 0 :(得分:1)
Vavr的Option
和Java的Optional
是用于消除null
值的类型。
数据库不使用可选值,它们使用null
值,因此将值解包为null
。
userId.getOrElse(null)
不过,请注意,例如在SQL数据库中,null
的值与其自身不相等,因此如果WHERE userId = ?
参数为?
,则null
将不返回任何内容。要查找具有null
值的记录,SQL必须为WHERE userId IS NULL
,因此,除非您的FindXxx
方法知道这一点并加以说明,否则代码仍然对您不起作用。