次のエンティティを検討してください。
@Entity
public class User {
private int id;
private String name;
private String family;
//getters and setters
}
そしてSQL:
select *
from (select row_.*, first_Value(rownum) over (order by rownum desc) countـ
from (select * from user) row_)
ご想像のとおり、sql の結果セットは 4 つの列で構成されています。
id, name, family, countـ
次の方法で、ユーザー テーブル レコードをユーザーのリストとして取得します。
String myQuery = "select * from (select row_.*, first_Value(rownum) over (order by rownum desc) count_
from (select * from user) row_)"
Query query = entityManager.createNativeQuery(myQuery, User.class);
List<User> users = query.getResultList();
ここでの問題は、 getResultList() または他の休止状態に相当するものを一度呼び出すだけで、ユーザーのリストを取得し、値をカウントするにはどうすればよいかということです。
Oracle 11g と Jpa (Hibernate 実装 3.6) を使用しています。
前もって感謝します。