@Override
public QueryResult<CustomerWatchItem> getCustomerScrollData(int firstResult, int maxresult, String wherejpql, Object[] queryParams, LinkedHashMap<String, String> orderby) {
QueryResult qr = new QueryResult();
String sql="SELECT o.watchTimeStr,o.watchTime,o.statue,o.name,o.number,db.fx10mins,db.fs10mins,db1.benzhanqiya,db2.qiwen,db2.ludianwendu,db2.xiangduishidu,db3.tenmins,db4.xiaoshijiangyuliang FROM db_m_watchitem o LEFT JOIN db_m_watchitem_wind db ON o.id = db.data_id LEFT JOIN db_m_watchitem_pressure db1 ON o.id = db1.data_id LEFT JOIN db_m_watchitem_temhum db2 ON o.id=db2.data_id LEFT JOIN db_m_watchitem_visible db3 ON o.id=db3.data_id LEFT JOIN db_m_watchitem_dre db4 ON o.id=db4.data_id ";
Query query = this.em.createNativeQuery(sql + (wherejpql != null && !"".equals(wherejpql.trim())?"where " + wherejpql:"") + buildOrderby(orderby));
setQueryParams(query, queryParams);
query.unwrap(SQLQuery.class).setResultTransformer(Transformers.aliasToBean( CustomerWatchItem.class));
if(firstResult != -1 && maxresult != -1) {
query.setFirstResult(firstResult).setMaxResults(maxresult);
}
qr.setResultlist(query.getResultList());
query = this.em.createQuery("select count("+getCountField(this.entityClass)+") from " + getEntityName(this.entityClass) + " o " + (wherejpql != null && !"".equals(wherejpql.trim())?"where " + wherejpql:""));
setQueryParams(query, queryParams);
qr.setTotalrecord(((Long)query.getSingleResult()).longValue());
return qr;
}
注意的是,必须对查询出来的结果提供getset方法,否则异常