使用 jparepository 从 getmapping 返回布尔结果

Posted

技术标签:

【中文标题】使用 jparepository 从 getmapping 返回布尔结果【英文标题】:Return boolean result from getmapping using jparepository 【发布时间】:2022-01-06 01:31:58 【问题描述】:
This is my getmapping controller
@GetMapping("/email")
    public List<user> doesUsernameExists(@RequestParam String username) throws IOException, InterruptedException
        System.out.println("Inside doesUsernameExists");        
        return this.usernameExists.findByUsername(username);
    
This is my JpaRepository interface
@Repository
public interface usernameExists extends JpaRepository<user, Long>  
    List<user> findByUsername(String userName); 

此代码运行良好,但它在 json 中给出了 ID 为用户名和密码的响应。但是, 如果用户名存在于 db 表中,我想返回 true,否则返回 false 我该怎么办,请帮忙。

【问题讨论】:

然后返回一个布尔值而不是列表。在 Spring Data JPA 中将您的方法重写为 boolean existsByUsername(如文档中所述)。 考虑将解决方案添加为答案并接受它,这样您的问题就可以结束了。谢谢! 如何添加解决方案作为答案?你能告诉我是***的新手吗? 写在下面,Your Answer 部分。 【参考方案1】:
@Repository
public interface usernameExists extends JpaRepository<user, Long>
    
    boolean existsByUsername(String userName);
    


@Autowired
    private usernameExists usernameExists;
    
    @CrossOrigin(origins = "*")
    @GetMapping("/email")
    public boolean doesUsernameExists(@RequestParam String username) throws IOException, InterruptedException
        System.out.println("Inside doesUsernameExists");
        
        return this.usernameExists.existsByUsername(username);
    

这解决了问题

【讨论】:

当你回答时,你需要解释你究竟做了什么来解决问题

以上是关于使用 jparepository 从 getmapping 返回布尔结果的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 JpaRepository 从 xml 中的命名本机查询返回 Map 作为结果

JpaRepository 中的 delete 方法从 DB 表中删除所有行

为啥 JpaRepository.findAll() 方法从我的 Oracle 数据库中获取错误的数据?

使用 JPA 语法时,具有复杂键类的 JpaRepository 验证失败并出现错误“方法查询验证失败”

查询验证失败:JpaRepository

将 @EmbeddedId 与 JpaRepository 一起使用