1

現在、Spring 3.2.0、Hibernate 4.2.0.CR1、および Oracle 10g を使用して Web アプリケーションを使用しています。

Oracle テーブルの主キーはシーケンスで生成され、それらはすべてLongHibernate エンティティのタイプにマップされています。実際には、ページネーションのないシステムを持つことはほとんど不可能です。

通常、次の方法を使用して、データベース テーブル内の行のリストからサブリストを取得します。

sessionFactory.getCurrentSession()
              .createQuery("from Entity order by entityId desc")
              .setFirstResult(currentPage)
              .setMaxResults(pageSize)
              .list();

およびメソッドは、パラメータとして の型のみを受け入れsetFirstResult()ます。もちろん、型はこのメソッドには十分すぎるほどのものですが、誰かがテーブルに多数の行を持っていて、たとえば 50 行のサブリストを取得する必要がある場合はどうでしょうか?setMaxResults()intintsetMaxResults()Integer.MAX_VALUE

特定のテーブルに複数の2,147,483,647行があると仮定します。もちろん、指定された値が大きな数であることは理解できますが、メソッドが?の型のみを受け入れる場合、なぜ主キーに型を2,147,483,647使用する必要があるのか​​という疑問が生じます。以外を受け入れる基準 API を使用しても、このメソッドのオーバーロードされたバージョンは見当たりません。これも、ページネーションのないシステムは実際にはめったに見られません。LongsetFirstResult()intint

4

0 に答える 0