我有以下通常正常工作的代码:

public void delete(T object)

{

EntityManager em = getPersistence().createEntityManager();

EntityTransaction et = em.getTransaction();

try

{

et.begin();

object = em.find(object.getClass(), object.getId());

em.remove(object);

em.flush();

et.commit();

}

catch(Exception e)

{

error("Unable to delete " + object.toString() + ": there are references to it.");

}

finally

{

if (et.isActive()) et.rollback();

em.close();

}

}

对于我的许多实体类来说,这都是可行的。但是对于其中的两个它什么也不做,它不会引发任何异常,也不会删除该对象。来自hibernate的日志显示,hibernate执行了许多选择查询,但它甚至没有尝试执行删除。

我已经在这里和这里尝试了在其他类似问题中发现的建议,但是没有用(嗯,后者建议@Transactional我不能使用,但是我只是在begin()和之间加上了语句commit())。

我似乎找不到这两个类比其他类更多(或更少)的东西。他们使用@PrimaryKeyJoinColumn,就像几乎所有其他实体我有,他们有@OneToMany和@ManyToOne一样ohters。老实说,他们确实有一个@OneToOne(optional

= false)引用另一个类的字段,而其他实体则没有,但是除非您告诉我可能有原因,否则我不会经历更改它的麻烦(并因此更改了数据库模式)。为了它。

是@OneToOne责任?还是我的删除代码有问题?

jpa 删除是否成功_JPA / Hibernate删除实体有时不起作用相关推荐

  1. jpa 删除是否成功_jpa delete无法删除 浅析JPA中EntityManager无法remove entity的问题 - 电脑故障 - 服务器之家...

    jpa delete无法删除 浅析JPA中EntityManager无法remove entity的问题 发布时间:2017-03-21 来源:服务器之家 JPA对于维护双边关系操作其实已经有明确说明 ...

  2. jpa配置映射包_JPA – Hibernate –包级别的类型映射

    jpa配置映射包 当我们最终成熟到可以在JPA中使用某些自定义类型映射时,我们通常会停留在某些提供程序特定的解决方案上,因为JPA本身并未定义任何用于执行此操作的机制. 让我为您展示一个JPA提供程序 ...

  3. hibernate删除记录_Hibernate记录:常见问题的提示和解决方案

    hibernate删除记录 如何通过适当的日志记录解决一些最常见的Hibernate问题? Hibernate的日志记录配置是一个重要但很少讨论的主题. 正确的配置可以帮助您在开发过程中发现潜在的问题 ...

  4. 电脑系统刚刚升级成功,如何删除旧系统?

    电脑系统刚刚升级成功,如何删除旧系统? --以win10新系统为例 1,在桌面双击『计算机或此电脑』 2,找到Win10正式版系统所在磁盘(通常有Windows标识),右击系统所在盘符,从其右键菜单中 ...

  5. 电脑中的php怎么删除文件夹,php中删除文件夹以及文件夹中的文件的方法

    在学习本方法之前我们最rmdir();函数,这个函数就是根据指定的文件路劲,删除文件或者是文件夹,但是当删除的是文件夹,并且文件夹里面还有内容的时候,就会出现Directory not empty 的 ...

  6. vue+element-ui操作删除(单行和批量删除)

    2019独角兽企业重金招聘Python工程师标准>>> 页面展示: <template> <!-- 表格内容 --><el-table :data=&q ...

  7. jpa findone怎么用_Jpa VS MyBatis,你用哪个?

    经常看到有小伙伴在讨论 JPA 和 MyBatis 这两个孰优孰劣的问题,其实松哥觉得这是一个伪命题,没必要为这种问题争个面红耳赤,每种框架有它存在的道理,也有各自擅长的事情,今天松哥就和大家来聊聊这 ...

  8. 在linux怎样删除文件夹里,linux删除文件夹(里头有文件)

    cat /etc/passwd |cut -f 1 -d : 查看所有用户 su 切换用户 userdel 删除户名 adduser username 新建用户 passwd username 更改密 ...

  9. qtplaintextedit如何删除内容_YouTube:如何删除油管频道Channel

    上次说到YouTube如何创建多个频道Channel? 本文含小彩蛋,看看大家能不能发现里面的细节~~ 这次就马上讲 如何删除如何创建删除频道Channel 同样地,到setting设置一栏: 在新建 ...

最新文章

  1. python语言基础汇总
  2. 腾讯优图开源业界首个3D医疗影像大数据预训练模型
  3. Flutter 构建完整应用手册-动画
  4. ping 超时时间_华为交换机ping命令详解
  5. c++ primer 5th第13章拷贝控制知识点和自编习题答案
  6. 黑马程序员---JVM内存组成
  7. oracle告警日志备份,教你怎样用Oracle方便地查看报警日志错误
  8. batchsize大小对训练速度的影响
  9. oracle10g遇到ORA-16038日志无法归档问题
  10. Qt JSON解析生成笔记
  11. 计算机组成原理第9章,计算机组成原理第9章习题参考答案
  12. 变频器基础:变频器工作原理与常用功能
  13. 直接sql 添加字段赋值
  14. Python实现绘制函数图像——以Sigmoid函数为例
  15. ubuntu安装cad快速看图linux版
  16. 探索 Android TDD 开发方法
  17. 案例研究:中国金融科技50强之“安心de利”风控模式
  18. 2018/09/29Web前端学习第五课
  19. Raphael绘制流程图箭头的方法
  20. 07 Python数据类型详解

热门文章

  1. uni-app读取html缓存,uni-app同步缓存值 设置 读取 删除(示例代码)
  2. api网关揭秘--spring cloud gateway源码解析
  3. spring jdbcTemplate使用queryForList示例
  4. Spring SqlRowSet example--转载
  5. RSA加密解密及数字签名Java实现--转
  6. Python数据结构与算法(第二天)
  7. 宏定义define的使用
  8. MyBatis -- 结果集映射
  9. AlphaGo已经拿下围棋,创投界的“Master”何时出现?
  10. C语言N台服务器通信,使用socket的Linux上的C语言文件传输顺序服务器和客户端示例程序 ....