最近写个小东西,需要用到Jqgrid,Jqgrid需要固定格式
String modelHql = this.createHql("student");
List list = Student.findList(modelHql,pageInfo);//立即查数据库
要生成的模型为:
map.put("page", page);
map.put("total", total);
map.put("rows", list);
map.put("records", recordNum);
这个list其实是
list.add(map)
这个map是一条记录里边的字段和相应的值,这样这个1个list对应多个map
我是这样写的
private static Map reflectObject(Map m,Object o,Map loopMap) throws Exception{
Object value = null;
Method method = null;
Object records[] = null;
PersistentSet p = null;
Class clazz = o.getClass();
//拿到所有字段并遍历
Field[] fields = clazz.getDeclaredFields();
for(Field f:fields){
//得到字段对应方法
method = clazz.getMethod(getMethodName(f),new Class[]{} );
//得到对应方法值
value = method.invoke(o);
m.put(f.getName(), value);
}
return m;
}
我的POJO @ManyToMany(fetch=FetchType.EAGER,cascade={CascadeType.ALL})是JOIN连接,因为student里边有个teacher对象,虽然这个对象已经被查出来了,但是却是个PersistentSet,我不能通过反射拿到值 ,因为他是个对象 ,所以用 JSONArray json = JSONArray.fromObject(map);直接就异常了,我想实现的是可以把这个teacher也可以查出来并转化成JSON。哪位大哥可以实现!!!!