Я пытаюсь получить 10 записей за раз. Проблема в том, что код просто извлекает первые 10 записей и последние 4 записи. Он пропускает промежуточные 10 записей.
Учитывая, что в базе данных имеется 24 записи. Следующая программа должна принести 24 записейПакетная обработка 10 записей java, JPA
SelectQuery: SELECT л из объекта л, где l.processed = 'N' fetchObjectsCount запроса: Выбор количества (*) из объекта OBJ, где l.processed = 'N'
private static Integer MAX_RESULT = 10;
private DataExtraction objectExtraction(){
int count = leadRepo.fetchObjectsCount();
Query query = null;
for (int i = 0; i < count; i++){
if (i % MAX_RESULT == 0){
query=entityManager.createNamedQuery("SelectQuery").setFirstResult(i).setMaxResults(MAX_RESULT);
List<Object> tempList = (List<Object>) query.getResultList();
entityManager.getTransaction().begin();
for (Object ob : tempList){
ob .setProcessed("Y");
entityManager.persist(ob);
}
entityManager.getTransaction().commit();
i = i+9;
}
if (i % MAX_RESULT < 1 && count - i <= MAX_RESULT){
query = entityManager.createNamedQuery("SelectQuery").setFirstResult(i).setMaxResults(count-i);
List<Object> tempList = (List<Object>) query.getResultList();
entityManager.getTransaction().begin();
for (Object ob : tempList){
ob .setProcessed("Y");
entityManager.persist(ob);
}
entityManager.getTransaction().commit();
}
}
return this;
}
Примите мое изменение своего кода, оно крайне необходимо – DreadHeadedDeveloper