public QueryResult<T> Sqllist(QueryPara qp,String[] list)
{
String ename = getEntityClass().getSimpleName();
String sql = qp.getHql();
sql = (sql == null) || (sql.equals("")) ? "FROM " + ename : sql;
String csql = getCountSql(sql);
//sql = initSort(sql, qp.getOrderBy(), qp.getOrderDirection());
Query cquery = getSession().createSQLQuery(csql);
Query query = getSession().createSQLQuery(sql);
setAliasParameter(cquery, qp.getAlias());
setAliasParameter(query, qp.getAlias());
setParameter(query, qp.getArgs());
setParameter(cquery, qp.getArgs());
Integer total = (Integer) cquery.uniqueResult();
long totalPage = 0L;
int index = qp.getPageIndex();
int size = qp.getPageSize();
if (((index > 0 ? 1 : 0) & (size > 0 ? 1 : 0)) != 0) {
totalPage = total % size == 0L ? total / size : total / size + 1L;
int first = (index - 1) * size;
if (index == (int)totalPage) {
size = (int)total % size;
if (size == 0) {
size = qp.getPageSize();
}
}
setPager(query, first, size);
}
List<T> rows = query.list();
List lst = new ArrayList();
ParameterizedType parameterizedType = (ParameterizedType) this.getClass().getGenericSuperclass();//获取当前new对象的泛型的父类类型
Class clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
for(Iterator iterator = rows.iterator();iterator.hasNext();){
try {
Object obj = clazz.newInstance();
Object[] objects = (Object[]) iterator.next();
for(int i =0;i<list.length ;i++){
Field field = clazz.getDeclaredField(list[i]);
field.setAccessible(true);
field.set(obj, objects[i]);
}
lst.add(obj);
} catch (Exception e) {
e.printStackTrace();
}
}
{
String ename = getEntityClass().getSimpleName();
String sql = qp.getHql();
sql = (sql == null) || (sql.equals("")) ? "FROM " + ename : sql;
String csql = getCountSql(sql);
//sql = initSort(sql, qp.getOrderBy(), qp.getOrderDirection());
Query cquery = getSession().createSQLQuery(csql);
Query query = getSession().createSQLQuery(sql);
setAliasParameter(cquery, qp.getAlias());
setAliasParameter(query, qp.getAlias());
setParameter(query, qp.getArgs());
setParameter(cquery, qp.getArgs());
Integer total = (Integer) cquery.uniqueResult();
long totalPage = 0L;
int index = qp.getPageIndex();
int size = qp.getPageSize();
if (((index > 0 ? 1 : 0) & (size > 0 ? 1 : 0)) != 0) {
totalPage = total % size == 0L ? total / size : total / size + 1L;
int first = (index - 1) * size;
if (index == (int)totalPage) {
size = (int)total % size;
if (size == 0) {
size = qp.getPageSize();
}
}
setPager(query, first, size);
}
List<T> rows = query.list();
List lst = new ArrayList();
ParameterizedType parameterizedType = (ParameterizedType) this.getClass().getGenericSuperclass();//获取当前new对象的泛型的父类类型
Class clazz = (Class<T>) parameterizedType.getActualTypeArguments()[0];
for(Iterator iterator = rows.iterator();iterator.hasNext();){
try {
Object obj = clazz.newInstance();
Object[] objects = (Object[]) iterator.next();
for(int i =0;i<list.length ;i++){
Field field = clazz.getDeclaredField(list[i]);
field.setAccessible(true);
field.set(obj, objects[i]);
}
lst.add(obj);
} catch (Exception e) {
e.printStackTrace();
}
}