[Query].setFirstResult( 整数 )レコードがずらっと並んでいたとき、「最初から何番目のものから取り出すか」を設定するものです。引数値は整数(int値)で指定します。一番最初はゼロであり、1ならば2番めから、2ならば3番目から……という具合に取得します。
[Query].setMaxResults( 整数 )取り出すレコード数を指定するものです。引数はint値です。5ならば、最大5個を取り出します。「最大」というのは、例えば得られるレコード数がそれより少ない場合もあるためです。
http://localhost:8080/hello?n=1&c=2
Query query = manager.createQuery(criteria_query);
query.setFirstResult(n).setMaxResults(c);
List list = query.getResultList();
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
// ※サーブレットに追記
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String n_str = request.getParameter("n");
String c_str = request.getParameter("c");
int n = 0;
int c = 5;
try {
n = Integer.parseInt(n_str);
c = Integer.parseInt(c_str);
} catch(NumberFormatException e){
e.printStackTrace();
}
EntityManager manager = factory.createEntityManager();
CriteriaBuilder builder = manager.getCriteriaBuilder();
CriteriaQuery<MyDataEntity> criteria_query =
builder.createQuery(MyDataEntity.class);
Root<MyDataEntity> root = criteria_query.from(MyDataEntity.class);
criteria_query.select(root);
Query query = manager.createQuery(criteria_query);
query.setFirstResult(n).setMaxResults(c);
List list = query.getResultList();
request.setAttribute("list", list);
RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp");
dispatcher.forward(request,response);
}
| << 前へ |