Search code examples
javaspringrestget

Spring @GetMapping returning empty array


When use GET with postman on link http://localhost:8081/api/data/mydatas/admin

i get an empty array. I've also tried adding { "username": "admin" } but it still returns as an empty array.

this is the code in my java service:

@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;
        
        }

However, if i add username = "admin"; as below. It will send back the array with full of data.

    @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;
        
        }

What am i doing wrong? Ps i am a novice still struggling with the basics.


Solution

  • add @PathVariable before your parameter like so

    @PathVariable String username
    

    With this annotation you are telling Spring to grab username from URL path