Я пытаюсь выполнить update
HQL
запрос внутри итератора для нескольких записей в java. Но когда я выполняю, он обновляет только альтернативную запись, пропуская следующую запись. Если я просто напечатаю объекты итератора в журнале, без выполнения запроса на обновление, он будет распечатывать все объекты. Итак, почему он пропускает объект каждый следующий, когда я выполняю update
внутри Iterator?iterator.next() возвращает альтернативные объекты
Мой код:
List<Integer> id = (List<Integer>) myList.list();//I've to update query for each id
for(Iterator <Integer> iter = id.iterator();iter.hasNext();){
System.out.println("id: "+(Integer) iter.next());
int ids = (Integer) iter.next();
Query query =session.createQuery("update MyTable set url =? where id=?);
query.setParameter(0,url);
query.setParameter(1,ids);
query.executeUpdate();
}
Если у меня есть 4 элемента в myList
будет просто обновить для 2-го и 4-го по skippint 1 и 3.
Да Вы правы, но я уже сделал этот путь, просто забыл добавить здесь в пример код, у меня есть код обновления. – Niraj
@niraj Ваш код по-прежнему содержит два 'iter.next()' calls - 'System.out.println (" id: "+ (Integer) iter.next());' и 'int ids = (Integer) iter. next(); ' – Eran
my 'ids' такой же, как ваш 'currentId' :) ans Я сохранил sys.out() для цели журнала – Niraj