JPA中查询任意表的任意字段转实体类Dto的Util方法

来源:互联网 发布:c语言中的char=a[] 编辑:程序博客网 时间:2024/06/05 17:30
//转换实体类public static <T> List<T> castEntity(List<Object[]> list, Class<T> clazz) throws Exception {          List<T> returnList = new ArrayList<T>();          Object[] co = list.get(0);          Class[] c2 = new Class[co.length];                    //确定构造方法          for(int i = 0; i < co.length; i++){              c2[i] = co[i].getClass();          }                    for(Object[] o : list){              Constructor<T> constructor = clazz.getConstructor(c2);              returnList.add(constructor.newInstance(o));          }                    return returnList;      }

注意:
新建的Dto需要一个构造方法,该构造方法参数的类型,位置需要与hql语句查询出来的字段完全一致,上面这个方法就是按照位置赋值的,而不是按照字段名。

0 0