Mantis - Resin
Viewing Issue Advanced Details
2746 minor always 06-23-08 09:09 06-23-08 15:37
ferg  
ferg  
normal  
closed 3.1.6  
fixed  
none    
none 3.2.0  
0002746: Amber setMaxResults
(rep by Riccardo Cohen)
I use javax.persistence.Query to retreive entity beans throught the
EntityManager.
I have to use setFirstResult() and setMaxResults() to implement next
page / previous page functions.
I found 2 strange things about it :

1) setMaxResults does not fix the "maximum number of results to
retrieve" as the docs says, but indeed the last row number to retreive.
Example :

hqr.setFirstResult(50);
hqr.setMaxResults(60);
gives :
51 : 51 51
52 : 52 52
53 : 53 53
54 : 54 54
55 : 55 55
56 : 56 56
57 : 57 57
58 : 58 58
59 : 59 59
60 : 60 60

2) the LIMIT sql function seems partially implemented. The previous
request calls this :(sql spy=true)

select h.adlid, h.adlfirstname, h.adlname from adluser h order by
h.adlid LIMIT 60

While it should call LIMIT 50,10 (and actually it should call LIMIT
50,60 if you beleive the javax.persistence.Query doc).
It seems that it is the java code that eliminate the 50 first rows.
Imagine I want the rows 10000 to 10005, It seems that the database will
return 10005 rows and the java code will throw the 10000 first

I found nothing about this in recent archives. Thanks for any
information about these 2 topics.
I use Resin 3.1.5 and also 3.2.0 snapshot 18th mai on MacOsX,
the database is mysql 5.0.37 with latest mysql java driver
mysql-connector-java-5.1.6-bin.jar


Notes
(0003221)
ferg   
06-23-08 15:37   
jpa/143{0,1,2}