JAVA Spring Boot – existsByColumne1AndNotColumn2 仓库查询

我正在使用Java Spring Boot,我想创建默认查询,以查找一个用户是否已经存在给定的手机号码,而不是给定的用户ID。一个原始查询是这样的

SELECT * FROM `user` WHERE mobile = "9898989898" AND user_id != 123

我发现要检查单列的数据是否存在于该列中,我们可以在Repository类中做这样的事情。

Boolean ExistWithMobile(String mobile)

如果找到给定手机号码的记录,将返回true或false。

同样的方法,我想进行类似于上面的查询,但这是行不通的。

Boolean existsByMobileAndNotUserId(String mobile, Long userId);

此项应该返回true或false,该电话号码是否可以使用Other userId。

我知道如何才能使用原始查询,因为我已经在问题的开头提到了,但我想这样的直接查询方式,而不是原始查询。

任何帮助将是感激的。

解决方案:

如果你不想使用原生sql查询,你可以使用HQL代替。

在你的情况下,你可以使用HQL来代替。

@Query("from User u Where u.mobile = :mob and u.id != :id")
Optional<User> findUserByMobile(@Param("mob") String mobile, @Param("id") long id)

当你调用:

Optional<User> user = repo.findUserByMobile(mobile, uid);
if( user.isPresent() ) { ... }

这里是spring data中@Query的文档。春天数据JPA

运气好

给TA打赏
共{{data.count}}人
人已打赏
未分类

javafx.fxml.LoadException: Missing resource key

2022-9-9 9:21:19

未分类

如何通过覆盖来自InterruptableJob接口的中断方法来终止当前正在运行的石英作业?

2022-9-9 9:32:16

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索