Spring JPAでEntityManagerを使用してオフセット値からの最大件数を取得する方法
オフセット値(初期値=0)から最大件数までを取得する方法です。
setFirstResultメソッドの引数でオフセット値を設定します。0を基底値として1件目から取得していきます。
setMaxResultsの引数で一回のSQLで取得する件数(オフセット値からの)を指定します。
最後にgetResultListメソッドでSQL実行しメモリに保持します。
@RequestMapping(path = "/test/{offset}", method = RequestMethod.GET) public ResponseEntity> test(@PathVariable Integer offset) { CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuerycriteriaQuery = builder.createQuery(Employee.class); Root q = criteriaQuery.from(Employee.class); criteriaQuery.select(q); TypedQuery query = entityManager.createQuery(criteriaQuery); List employee = query.setFirstResult(offset).setMaxResults(1000).getResultList(); int currentOffset = employee.size(); employee.stream().forEach(e -> log.info("{}", e)); return ResponseEntity.ok(Map.of("result", currentOffset)); } // curl -X GET http://localhost:8080/test/0

KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
資格:少額短期保険募集人,FP3級,宅建士
コメント