Hibernate 从关联中删除已删除的对象,而不在数据库中删除它

Hibernate 从关联中删除已删除的对象,而不在数据库中删除它,hibernate,hibernate-mapping,hbm,Hibernate,Hibernate Mapping,Hbm,我有一个名为DashboardPage的实体,其中包含DashboardPageItem的列表,当我尝试运行此代码时: for(DashboardPage dp : dashboard.getPages()){ if(dp.getIndex() == dashboardPage.getIndex()){ dp.getDashboardPageItems().clear(); Iterator<Dashb

我有一个名为
DashboardPage
的实体,其中包含
DashboardPageItem
的列表,当我尝试运行此代码时:

for(DashboardPage dp : dashboard.getPages()){
            if(dp.getIndex() == dashboardPage.getIndex()){
                dp.getDashboardPageItems().clear();
                Iterator<DashboardPageItem> itDashboardPageItem = dp.getDashboardPageItems().iterator();
                while (itDashboardPageItem.hasNext()) {
                   DashboardPageItem dpi = itDashboardPageItem.next();
                   itDashboardPageItem.remove();
                }

            }
        }
当我搜索类似的问题时,我发现我必须使用
session.delete()
,但这将从数据库中删除该对象,我只想从列表中删除它

这是我的课程的hbm:

仪表板页面:

仪表板页面项目:

我怎样才能解决这个问题

编辑:
此代码只是我所做工作的一部分,因此我不希望数据库受到我所做更改的影响,但在另一部分中,我希望调用
会话.save(dashboard)
,它将保存我所做的所有修改。

如果您只想级联由会话.delete()显式调用的删除操作,然后,与此相反:

cascade="all,delete-orphan"
仅使用

cascade="all"

删除孤立级联属性的工作方式是,当您仅从托管集合中删除项时。。它将在事务结束时被删除。

如果您只希望级联由session.delete()显式调用的删除,则不执行此操作:

cascade="all,delete-orphan"
仅使用

cascade="all"

删除孤立级联属性的工作方式是,当您仅从托管集合中删除项时。。它在事务结束时被删除。

在这种情况下,如果我调用session.saveOrUpdate(仪表板),删除将不起作用。我明白了。根据您的帖子,我认为您只是想将其从内存中删除,而不是从数据库中删除是的,我正在尝试将其从列表中删除,然后才能保存对
仪表板
对象所做的所有更改。请确保。。您在这一行中得到错误-dp.getDashboardPageItems().clear()?是的,当它尝试获取
dp.getDashboardPageItems()
时,如果我调用session.saveOrUpdate(dashboard),则删除将不起作用。我明白了。根据您的帖子,我认为您只是想将其从内存中删除,而不是从数据库中删除是的,我正在尝试将其从列表中删除,然后才能保存对
仪表板
对象所做的所有更改。请确保。。您在这一行中得到错误-dp.getDashboardPageItems().clear()?是,当它尝试获取
dp.getDashboardPageItems()
cascade="all"