gpt4 book ai didi

java - 为什么我无法在 hibernate 中删除两个相邻的对象?

转载 作者:行者123 更新时间:2023-12-01 14:46:53 24 4
gpt4 key购买 nike

我正在使用 Spring/Hibernate 系统,目前我正在为我的项目提供图像管理。

我可以创建一个父级,上传新图像(好吧,当我做到这一点时我就能做到......),但我无法删除彼此相邻的两个图像。例如,我的 Collection 中有八张图片。如果我选择图像 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();
}
}

有人知道我该如何解决这个问题吗?

非常感谢

最佳答案

这是您的图像列表:

A, B, C, D, E

您选择第一个、第二个和第三个(A、B、C),并将它们标记为“待删除”。

在第一次迭代时,i 等于 0,size 等于 5,您将获得索引 0 (A) 处的图像,该图像被标记为删除,所以列表变成

B, C, D, E

在第二次迭代中,i 等于 1,size 等于 4,您将获得索引 1 (C) 处的元素,该元素被标记为删除,所以列表变成

B, D, E

在第三次迭代中,i 等于 2,大小等于 3,您将获得索引 2 (E) 处的元素,该元素未标记为删除。

结论:如果你想保持相同的算法,请从列表的末尾开始,而不是从头开始。

关于java - 为什么我无法在 hibernate 中删除两个相邻的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15349487/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com