我正在使用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);无论此电话号码是否可用于其他userId,都应返回true或false
我知道如何处理原始查询,因为我在问题的开头已经提到过,但我想要这样的直接查询方式,而不是原始查询。
任何帮助都将不胜感激。
发布于 2020-04-24 23:55:15
如果您不想使用原生sql查询,则可以使用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的文档:Spring Data JPA
祝好运
https://stackoverflow.com/questions/61412049
复制相似问题