現在、Spring 3.2.0、Hibernate 4.2.0.CR1、および Oracle 10g を使用して Web アプリケーションを使用しています。
Oracle テーブルの主キーはシーケンスで生成され、それらはすべてLong
Hibernate エンティティのタイプにマップされています。実際には、ページネーションのないシステムを持つことはほとんど不可能です。
通常、次の方法を使用して、データベース テーブル内の行のリストからサブリストを取得します。
sessionFactory.getCurrentSession()
.createQuery("from Entity order by entityId desc")
.setFirstResult(currentPage)
.setMaxResults(pageSize)
.list();
およびメソッドは、パラメータとして の型のみを受け入れsetFirstResult()
ます。もちろん、型はこのメソッドには十分すぎるほどのものですが、誰かがテーブルに多数の行を持っていて、たとえば 50 行のサブリストを取得する必要がある場合はどうでしょうか?setMaxResults()
int
int
setMaxResults()
Integer.MAX_VALUE
特定のテーブルに複数の2,147,483,647
行があると仮定します。もちろん、指定された値が大きな数であることは理解できますが、メソッドが?の型のみを受け入れる場合、なぜ主キーに型を2,147,483,647
使用する必要があるのかという疑問が生じます。以外を受け入れる基準 API を使用しても、このメソッドのオーバーロードされたバージョンは見当たりません。これも、ページネーションのないシステムは実際にはめったに見られません。Long
setFirstResult()
int
int