Skip to content

Commit b39ab72

Browse files
committed
Updated order of the offset and limit statements for H2 in the list() method in the WebService class
1 parent 6fb3326 commit b39ab72

File tree

1 file changed

+36
-13
lines changed

1 file changed

+36
-13
lines changed

src/javaxt/express/WebService.java

Lines changed: 36 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -441,7 +441,7 @@ private ServiceResponse list(Class c, ServiceRequest request, Database database)
441441
//Build sql string
442442
StringBuilder sql = new StringBuilder("select ");
443443
Field[] fields = request.getFields();
444-
if (fields==null || fields.length==0) sql.append(" * ");
444+
if (fields==null || fields.length==0) sql.append("*");
445445
else{
446446
for (int i=0; i<fields.length; i++){
447447
if (i>0) sql.append(",");
@@ -510,30 +510,53 @@ private ServiceResponse list(Class c, ServiceRequest request, Database database)
510510
}
511511

512512

513-
//Add offset
514-
Long offset = request.getOffset();
513+
//Get offset
514+
Object offset = request.getOffset();
515515
if (offset!=null){
516-
sql.append(" offset ");
517-
sql.append(offset);
516+
StringBuilder str = new StringBuilder();
517+
str.append(" offset ");
518+
str.append(offset);
518519

519520
if (database.getDriver().equals("Oracle")){
520-
sql.append(" rows"); //OFFSET 20 ROWS
521+
str.append(" rows"); //OFFSET 20 ROWS
521522
}
523+
524+
offset = str.toString();
525+
}
526+
else{
527+
offset = "";
522528
}
523529

524530

525-
//Add limit
526-
Long limit = request.getLimit();
531+
//Get limit
532+
Object limit = request.getLimit();
527533
if (limit!=null){
534+
StringBuilder str = new StringBuilder();
528535
if (database.getDriver().equals("Oracle")){
529-
sql.append(" fetch next ");
530-
sql.append(limit);
531-
sql.append(" only");
536+
str.append(" fetch next ");
537+
str.append(limit);
538+
str.append(" only");
532539
}
533540
else { //PostgreSQL and H2
534-
sql.append(" limit ");
535-
sql.append(limit);
541+
str.append(" limit ");
542+
str.append(limit);
536543
}
544+
545+
limit = str.toString();
546+
}
547+
else{
548+
limit = "";
549+
}
550+
551+
552+
//Append offset and limit
553+
if (database.getDriver().equals("H2")){
554+
sql.append(limit);
555+
sql.append(offset);
556+
}
557+
else{
558+
sql.append(offset);
559+
sql.append(limit);
537560
}
538561

539562

0 commit comments

Comments
 (0)