我正在使用迭代器遍历对象列表。
List<FormQuestion> questions = regMetadata.getFormQuestions();
Iterator<FormQuestion> iter = questions.iterator();
while (iter.hasNext()){
FormQuestion question = iter.next();
//if invalid question, delete from list
if(question.getModuleType().intValue() == -1) {
iter.remove();
}
}
iter.remove()
也正在从DB中删除对象。有没有办法只从这个列表(问题)而不是从数据库中删除对象?我正在使用Hibernate&amp; MySQL的。
答案 0 :(得分:1)
我会过滤问题,将其写入新的List
:
List<FormQuestion> questionsAll = regMetadata.getFormQuestions();
List<FormQuestion> questions = new ArrayList<>();
for (FormQuestion question : questionsAll) {
// add to the list, unless invalid
if (question.getModuleType().intValue() != -1) {
questions.add(question)
}
}
另外,我使用for-each循环而不是Iterator
。你甚至可以将它重写为流。
答案 1 :(得分:0)
您的列表由hibernate管理。您应该首先从持久性上下文中分离列表,然后您可以从列表中删除而不从数据库中删除它。我认为这里的图片可以帮到你。 http://www.objectdb.com/java/jpa/persistence/managed