java为什么我不能在hibernate中删除两个相邻的对象?
我使用的是Spring/Hibernate系统,目前正在为我的项目提供图像管理
我可以创建一个家长,上传新的图片(好吧,当我达到这个目标时,我将能够…),但我不能删除相邻的两张图片。例如,我的收藏中有八幅图像。如果我选择图像1、2、3并单击删除,1&;3将删除,但2将保留。根据我的研究,这似乎来自多个线程,使用hibernate docs我在代码中添加了一个session.flush()
,但差别不大
Session session = sessionFactory.getCurrentSession();
for (int i=0; i<images.size(); i++) {
Image image = images.get(i);
if (image.getRemove()) {
page.getImages().remove(image);
session.delete(image);
session.flush();
}
}
有人知道我怎么解决这个问题吗
非常感谢
# 1 楼答案
以下是您的图片列表:
选择第一个、第二个和第三个(A、B、C),并将它们标记为“待删除”
在第一次迭代中,
i
等于0,size
等于5,然后在索引0(A)处获得图像,该图像被标记为删除,因此列表变为在第二次迭代中,
i
等于1,size
等于4,在索引1(C)处得到元素,该元素被标记为删除,因此列表变为在第三次迭代中,
i
等于2,size等于3,得到索引2(E)处的元素,该元素未标记为删除结论:如果你想保持相同的算法,从列表的末尾开始,而不是从头开始