Developping a pagination module for an open source
hibernate-struts based project
i was envolved in the problem of how to extrapolate
the results size of a given generic query (sql query, hql query
or criteria)
My first solution consisted into a size() call on
the returned collection but this means to extract the collection from the
db
for knowing the result size.
With hibernate 3 the solution for criteria was too
easy and consists into add Projection on the given generic Criteria
object
that otherwise of the session.iterate() solution
doesn't need to extract any raws . The only result extracted is the Integer
result of the count wrapped query.
Otherwise an analoughe solution for Hql/SQL Query
is not very easy because of the protected visibility of the getNamedParams()
method of org.hibernate.impl.AbstractQueryImpl
class.
this deny any users to access to the query
parameters needed to wrap and execute query.
To resolve this problem i tought a generich
solution that improves query class adding a count() public method
that allows to ask for a query result preview
count.
You can ask a given prepared query:
- for uniqueresult: with the uniqueresult
method
- for raw list: with the list
method
- for raw count: with the count
method
My implementation class are attached.
I hope i could support the project with this
little work...
Gaetano Perrone