如何使用' exists'查询方法中Spring Data中的关键字?
我想有一个像这样的方法:
public interface ProfileRepository extends JpaRepository<Profile, Long> {
boolean existsByAttribute(String attribute);
}
其中属性是个人资料的字段。
解决方法是使用custom-implementation。但appendix定义存在为关键字。有人可以举个例子来说明如何使用这个关键字吗?
答案 0 :(得分:8)
记录的关键字旨在与属性引用结合使用。因此,在这种情况下EXISTS
的语义是它检查属性是否存在。请注意,文档的一部分是从Spring Data Commons中提取的,并且在那里列出的关键字并不意味着它在Spring Data JPA中得到支持(在您链接的部分的第一段中指出)。 Spring Data JPA不支持Exists
,因为它仅在MongoDB中有意义,因为完全不存在的字段与逻辑null
值可用的字段之间存在差异。
所以你正在寻找的似乎是(Is)Null
关键字,当前的限制是它会返回对象,你必须检查返回的列表中的内容。有一个ticket可以添加对派生查询方法的投影的支持,您可能需要遵循这些方法以获得进一步的进展。
答案 1 :(得分:0)
使用Spring Data的Query by example功能可以获得类似的结果,here就是一个例子。