0

I am working on spring mvc hibernate project using jackson. At the time of fetching data from database using rest service , If I am obtaining whole object using hql:

 Query q = getSession().createQuery("select r from Role order by r.id");
 return (List<Role>) q.list();

OUTPUT:

[
    {
        "id": 1,           
        "name": "Role1",
        "description": "XXX",
        "privilege": "YYY"
    },
    {
        "id": 1,           
        "name": "Role2",
        "description": "XXX",
        "privilege": "YYY"
    }
]

I get array of objects, but if I select partial objects using following hql:

    Query q = getSession().createQuery("select r.id , r.name from Role order by r.id");
    return (List<Role>) q.list();

it returns array of array. OUTPUT:

[
    [
        1,
        "Role1"
    ],
    [
        2,
        "Role2"
    ]
]

How can I change my code so as to change this array of array as array of object. DESIRED OUTPUT:

[
    {
        "id": 1,           
        "name": "Role1"            
    },
    {
        "id": 1,           
        "name": "Role2"
    }
]

My rest code is:

@RequestMapping(value = "/roles/" , method=RequestMethod.GET)
public @ResponseBody ResponseEntity<List<Role>> getRoles()
{       
    return new ResponseEntity<List<Role>>(roleDao.getRoles(), HttpStatus.OK);
}
anik
  • 155
  • 1
  • 17
  • Use `Projections`. Check out [this](https://stackoverflow.com/a/24710759/3094731) answer. – Abdullah Khan Jul 27 '17 at 11:30
  • In the link that you shared also it is mentioned that it converts it to object array. Also, I hope my problem can be solved while using query itself – anik Jul 27 '17 at 11:48

0 Answers0