如何使用 Spring Data 中的 exists 关键字来检查实体是不是存在?
Posted
技术标签:
【中文标题】如何使用 Spring Data 中的 exists 关键字来检查实体是不是存在?【英文标题】:How to use the exists keyword in Spring Data to check for the existence of an entity?如何使用 Spring Data 中的 exists 关键字来检查实体是否存在? 【发布时间】:2012-12-21 10:50:24 【问题描述】:如何在查询方法中使用 Spring Data 中的 'exists' 关键字?
我想要一个这样的方法:
public interface ProfileRepository extends JpaRepository<Profile, Long>
boolean existsByAttribute(String attribute);
其中Attribute是Profile的一个字段。
解决方法是使用custom-implementation。但是appendix 定义为关键字存在。谁能给我一个例子如何使用这个关键字?
【问题讨论】:
【参考方案1】:记录的关键字旨在与属性引用结合使用。因此,EXISTS
在这种情况下的语义是它检查属性是否存在。请注意,文档的一部分是从 Spring Data Commons 中提取的,并且在那里列出的关键字并不意味着 Spring Data JPA 支持它(在您链接的部分的第一段中表示)。 Exists
不受 Spring Data JPA 支持,因为它仅在 MongoDB 中才有意义,例如,不完全存在的字段与逻辑上具有 null
值的可用字段之间存在差异。
因此,您要查找的内容似乎与 (Is)Null
关键字有关,当前的限制是它会返回对象,并且您必须检查返回的列表中的内容。有一个 ticket 可以添加对派生查询方法的投影的支持,您可能希望进一步了解这些方法。
【讨论】:
它是否仍然不受支持,因为文档暗示相反。我检查了 common docs 和 jpa,它都包含在两者中。以上是关于如何使用 Spring Data 中的 exists 关键字来检查实体是不是存在?的主要内容,如果未能解决你的问题,请参考以下文章
使用 spring-data-jpa 获取这些数据如何更正确?
spring-boot-starter-data-jpa 中的 Eaxmple 如何使用
如何使用Spring Data可伸缩地将元素插入MongoDB中的集合字段?