|
|
@@ -33,6 +33,8 @@ import com.x.query.core.express.statement.Runtime;
|
|
|
|
|
|
class ActionExecute extends BaseAction {
|
|
|
|
|
|
+ private final static String[] pageKeys = { "GROUP BY", " COUNT(" };
|
|
|
+
|
|
|
ActionResult<Object> execute(EffectivePerson effectivePerson, String flag, Integer page, Integer size,
|
|
|
JsonElement jsonElement) throws Exception {
|
|
|
|
|
|
@@ -87,8 +89,10 @@ class ActionExecute extends BaseAction {
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.equalsIgnoreCase(statement.getType(), Statement.TYPE_SELECT)) {
|
|
|
- query.setFirstResult((runtime.page - 1) * runtime.size);
|
|
|
- query.setMaxResults(runtime.size);
|
|
|
+ if(isPageSql(text)) {
|
|
|
+ query.setFirstResult((runtime.page - 1) * runtime.size);
|
|
|
+ query.setMaxResults(runtime.size);
|
|
|
+ }
|
|
|
data = query.getResultList();
|
|
|
} else {
|
|
|
business.entityManagerContainer().beginTransaction(cls);
|
|
|
@@ -116,8 +120,10 @@ class ActionExecute extends BaseAction {
|
|
|
}
|
|
|
}
|
|
|
if (StringUtils.equalsIgnoreCase(statement.getType(), Statement.TYPE_SELECT)) {
|
|
|
- query.setFirstResult((runtime.page - 1) * runtime.size);
|
|
|
- query.setMaxResults(runtime.size);
|
|
|
+ if(isPageSql(statement.getData())) {
|
|
|
+ query.setFirstResult((runtime.page - 1) * runtime.size);
|
|
|
+ query.setMaxResults(runtime.size);
|
|
|
+ }
|
|
|
data = query.getResultList();
|
|
|
} else {
|
|
|
business.entityManagerContainer().beginTransaction(cls);
|
|
|
@@ -127,6 +133,16 @@ class ActionExecute extends BaseAction {
|
|
|
return data;
|
|
|
}
|
|
|
|
|
|
+ private boolean isPageSql(String sql){
|
|
|
+ sql = sql.toUpperCase().replaceAll("\\s{1,}", " ");
|
|
|
+ for (String key : pageKeys) {
|
|
|
+ if (sql.indexOf(key) > -1) {
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
private Class<? extends JpaObject> clazz(Business business, Statement statement) throws Exception {
|
|
|
Class<? extends JpaObject> cls = null;
|
|
|
if (StringUtils.equals(Statement.ENTITYCATEGORY_OFFICIAL, statement.getEntityCategory())
|
|
|
@@ -173,4 +189,4 @@ class ActionExecute extends BaseAction {
|
|
|
|
|
|
}
|
|
|
|
|
|
-}
|
|
|
+}
|