当前位置: 首页 > 知识库问答 >
问题:

Hibernate成员删除在事务中未进一步看到

薛鹏飞
2023-03-14

我将HiberNate与JTA(容器管理事务)一起使用。

假设我有以下模型:与办公室和团队有多对一关系的员工。我已经建立了双向关联。

class Employee{
   Office office;
   Team team;
}

class Office{
   List<Employee> employees;
}

class Team{
   List<Employee> employees;
}

现在数据:

Emp 1与Ofc 1和团队1

Emp 2与Ofc 1和团队2

问题是:我遍历Team 1员工(即emp 1)并删除他们。然后在同一个事务中,我执行HQL选择以获取Ofc 1。现在,在Ofc 1员工列表中,我希望只找到emp 2(因为emp 1在上一步中已删除),但结果是两名员工仍在。

删除后,我尝试刷新实体管理器:同样的事情。

共有1个答案

顾永福
2023-03-14

根据 JPA 标准的要求,如果 PERSIST 操作应用/级联到已删除的实体,Hibernate 将取消计划删除。

确保从所有其他托管实体实例中删除对已删除实体的所有引用。

 类似资料:
  • 问题内容: 考虑以下简单的Hibernate场景: 此代码产生以下异常: 这是怎么回事? 问题答案: 好吧,看来一旦我们达到要求,交易就已经提交了。我唯一的猜测是Hibernate 在访问对象时已经提交了事务。 解决方法很简单:

  • 删除成员        点击“删除”按钮,弹出确认对话框,点击“确定”完成删除。

  • 接口说明 删除团队成员 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 API地址 POST /permissions/api/team/user/v1.0.0/deleteTeamUser 是否需要登录 是 请求字段说明 参数 类型 请求类型 是否必须 说明 token string header 是 当前登录用户的TOKEN teamUserId s

  • 接口说明 删除团队成员 如需调用,请访问 开发者文档 来查看详细的接口使用说明 该接口仅开放给已获取SDK的开发者 如开启https功能,请求地址的协议应改为https,如:https://www.example.com/wish3dearth/api/access/v1.0.0/getLicenseInfo API地址 POST /permissions/api/team/user/v1.0.0

  • 问题内容: 我需要在Delete键上从JTable删除行。所以用例很简单,用户选择一些行,按Delete键,这些行将被删除。代码也很简单: 问题是,删除操作完成后,我们会听到一声蜂鸣声(我在窗户上,是典型的窗户蜂鸣声),就像在空白文本框中按Delete键时(或插入符号在键盘的末尾)一样。文本)。我正在发生的事情是,按键被进一步分派到显示该单元格(已删除单元格之后的第一个单元格)的文本内容的文本组件

  • 我使用spring Boot2、jpa和Hibernate。Db是后置,我尝试删除一个带有子级的对象 如果我删除了Samplings,Samplings、testsamplings和Compressions也应该被删除。 从sample_letter=?的示例中删除和sampling_id=?和sampling_year=? 2018-10-03 22:21:05.832错误14511--[nio