如何在Spring Data中使用exists关键字来检查实体的存在?

tim*_*nen 12 spring-data

如何在查询方法中使用Spring Data中的'exists'关键字?

我想有这样的方法:

public interface ProfileRepository extends JpaRepository<Profile, Long> {
  boolean existsByAttribute(String attribute);
}
Run Code Online (Sandbox Code Playgroud)

其中AttributeProfile的字段.

解决方法是使用自定义实现.但附录定义存在为关键字.有人可以举个例子来说明如何使用这个关键字吗?

Oli*_*ohm 8

记录的关键字旨在与属性引用结合使用.因此,EXISTS在这种情况下的语义是它检查属性是否存在.请注意,文档的一部分是从Spring Data Commons中提取的,并且在那里列出的关键字并不意味着它在Spring Data JPA中得到支持(在您链接的部分的第一段中指出).ExistsSpring Data JPA不支持它,因为它仅在MongoDB中有意义,因为完全不存在的字段与逻辑null值可用的字段之间存在差异.

所以你正在寻找的似乎是(Is)Null关键字与当前限制,它将返回对象,你必须检查返回列表的内容.有一张可以添加对派生查询方法的投影的支持,您可能需要遵循这些方法以获得进一步的进展.