在 Spring Data JPA 中查询 NOTIN 的更好方法

Better way of querying NOTIN in Spring Data JPA

使用 Spring Data JPA,我正在使用下面的 jpa 查询(它工作得很好)来查询除登录用户之外的所有用户(以获取对等列表)。

appUserRepository.findByUsernameNotIn(new ArrayList<String>(Arrays.asList(getPrincipal()))).toString()

因为 NotIn 只接受集合,而我不得不过滤掉一个名字,所以我使用这个 'clumsy' 外观语句。

问题:有没有更好(更短)的方法来实现这个?意思是,从用户 table 获取除已登录用户以外的所有用户名?任何 clue/help 将不胜感激。

您可以使用findByUsernameNot(getPrincipal())

这将创建如下查询:

… where x.username <> ?1

您还可以查看 documentation 了解更多信息