在用SpringMVC进行查询的时候,虽然它的查询语句可以自定义字段,但是返回来的结果集是一个List集合,如果是自定义字段的,就不能赋值给实体类,下面是一个Ajax请求获取一个用户集,然后数据访问层返回一个List给控制层,控制层将List转换成JSON格式,然后返回给js页面
//加载所有人员
public List userList(){
List list=new ArrayList();
try {
Query query=em.createQuery("select ou.name,ou.username from OfUser ou order by ou.username asc");
for (Object row : query.getResultList()) {
Map<String,String> map=new HashMap<String,String>();
Object[] cells = (Object[]) row;
map.put("name", cells[0].toString());
map.put("username", cells[1].toString());
list.add(map);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
控制层
//加载所有成员信息
@RequestMapping(value="/groupUserList",method=RequestMethod.POST, produces = "text/html;charset=UTF-8")
@ResponseBody
public String groupUserList(HttpServletRequest request, Model model){
List userList=ofUserService.userList();
JSONArray jsonArray = JSONArray.fromObject(userList);
System.out.println(jsonArray);
return jsonArray.toString();
}