| When using something like the following
Query q = q.setFirstResult(1);
q.setMaxResults(Integer.MAX_VALUE);
the limit handler for e.g. DB2 fails because it tries to generate SQL like the following
select * from ( select inner2_.*, rownumber() over(order by order of inner2_) as rownumber_ from ( ... fetch first 1 + 2147483647 rows only ) as inner2_ ) as inner1_ where rownumber_ > 1 order by rownumber_
except that it doesn't generate "1 + 2147483647" but overflows since the sum is calculated in Java, so it prints "-2147483648". |