Spring @GetMapping返回空数组

时间:2020-08-13 08:50:10

标签: java spring rest get

在链接http:// localhost:8081 / api / data / mydatas / admin上将GET与邮递员一起使用时

我得到一个空数组。我也尝试添加 {“ username”:“ admin”},但仍返回为空数组。

这是我的java服务中的代码:

@GetMapping("/mydatas/{username}")
    public List<Data> findByUsername(String username) {

        Query q = em.createQuery("select data from Data data where data.username = :username");
        q.setParameter("username", username);
        List<Data> mydatas = q.getResultList();
        return mydatas;
        
        }

但是,如果我添加用户名=“ admin”;如下。它将把完整的数据发送回阵列。

    @GetMapping("/mydatas/{username}")
    public List<Data> findByUsername(String username) {

        username = "admin";

        Query q = em.createQuery("select data from Data data where data.username = :username");
        q.setParameter("username", username);
        List<Data> mydatas = q.getResultList();
        return mydatas;
        
        }

我在做什么错?附言:我是一个仍在苦苦学习基础知识的新手。

3 个答案:

答案 0 :(得分:3)

在参数之前添加@PathVariable

@PathVariable String username

使用此注释,您告诉Spring从URL路径中获取用户名

答案 1 :(得分:2)

您需要使用@PathVariable,

public List<Data> findByUsername(@PathVariable("username") String username)

答案 2 :(得分:0)

@PathVariable批注应以语音标记“”中的字段名称作为“字符串用户名”之前的findByUsername的参数传入