* @return
*/
private List doDynamicQuery(final Pagination pagination,
final Map parameters, final int scope) {
try {
Query query = null;
// 是否需要分页
final boolean needToPage = pagination != null;
int recordAmount = 0;
if (needToPage) {// 初始化分页信息
// 构造动态查询的统计SQL语句
query = this.em.createQuery(this.buildDynamicSQL(parameters, true,
scope));
// 处理参数
this.fittingQuery(query, parameters);
// 获取记录总数
recordAmount = Integer.parseInt(query.getSingleResult().toString());
}
// 构造动态查询的统计SQL语句
query = this.em.createQuery(this.buildDynamicSQL(parameters, false,
scope));
// 数据分页处理
if (needToPage) {
this.pagingQuery(query, pagination);
}
// 处理参数
this.fittingQuery(query, parameters);
// 获取查询结果
final List result = query.getResultList();
// 返回查询结果
if (needToPage) {
Page<E> page = null;
if (recordAmount == 0) {