public void test() {

        Session session=sessionFactory.getCurrentSession();

//删除方法1        Teacher teacher=new Teacher();        teacher.setId(6);

//数据库中存在id为6的记录,但name字段是"teacher"这里却删除成功        teacher.setName("不影响");        session=sessionFactory.getCurrentSession();        session.beginTransaction();        session.delete(teacher);        session.getTransaction().commit();

//删除方法2        session=sessionFactory.getCurrentSession();        session.beginTransaction();        teacher=(Teacher)session.load(Teacher.class, 7);         session.delete(teacher);        session.getTransaction().commit();

    }

总结:

  session的delete方法删除的时候是通过主键进行删除的,所以在方法1中即使设置了不对应的其它字段也是可以正常删除数据的,如果数据库没有存在对应的主键值,会出现下面的异常 ---Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1

最后记住:

  1) session的delete方法是通过主键进行删除的,主键不存在则异常

  2) 持久状态对象被delete后变成瞬时状态对象

转载于:https://www.cnblogs.com/mu-mu/archive/2012/01/18/2325561.html

(hibernate之三)session的delete方法相关推荐

  1. Hibernate Session的delete()方法

    本文介绍Hibernate Session的delete()方法.delete()方法用于从数据库中删除与Java对象对应的记录.对应游离对象和持久化对象,delete语句会做出不同的反应. dele ...

  2. Hibernate 的 session.load()使用方法

    2019独角兽企业重金招聘Python工程师标准>>> protected Person getOne(int id){ Session session = HibernateSes ...

  3. hibernate中session接口方法总结

    Session的save()和persist()方法 Session的save()方法使一个临时对象转变为持久化对象.它完成以下操作: (1)将临时对象加入到Session缓存中,使其进入持久化状态. ...

  4. 【hibernate框架】核心开发接口-saveOrUpdate方法与delete方法

    1.saveOrUpdate方法剖析 saveOrUpdate方法:分情况看是save还是update. 示例: public void testSaveOrUpdate(){Teacher t=ne ...

  5. Hibernate的懒加载session丢失解决方法

    在web.xml加入spring提供的过滤器,延长session的生命周期 <!--Hibernate的懒加载session丢失解决方法 --><filter><filt ...

  6. Hibernate学习笔记Session.evict(user)方法

    @[TOC]Hibernate学习笔记Session.evict(user)方法 Hibernate学习笔记Session.evict(user)方法 首先我们要明白Session.flush(use ...

  7. 一口一口吃掉Hibernate(二)——别被世俗蒙蔽了双眼:Hibernate中Session之get和load方法的真正区别

    最近在学习SHH框架中的Hibernate,对Session的get和load方法,有点混不清楚,不知道区别在哪,或者对它们的区别感触不深.所以百度了一下,结果问题来了.百度的结果和实际测试的结果出入 ...

  8. 【Hibernate】dao层 +getHibernateTemplate()方法解析

    2019独角兽企业重金招聘Python工程师标准>>> spring 中获得由spring所配置的hibernate的操作对象,然后利用此对象进行,保存,修改和删除等操作,此方法是在 ...

  9. Hibernate的Session介绍[转 adoocoke]

    Session Session是Hibernate向应用程序提供操作数据的主要接口, 他提供了保存.更新.删除.加载Java对象的方法. Session的缓存 Session有一个缓存,用来缓存Jav ...

最新文章

  1. java 表现层:jsp、freemarker、velocity
  2. npm 安装包失败 --- 清除npm缓存
  3. Shell : 基本语法
  4. 16个在线机器学习视频与教程
  5. Maven入门指南(一)
  6. 什么是SVC模式【转】
  7. java显示目录文件列表和删除目录
  8. c++随机打乱数组_第四天 Java 数组与排序
  9. 计算机高级技师考试题,高级技师考试题及答案.doc
  10. Python核心编程学习日记之模块
  11. 信息时代不被淘汰,获取成功需有的十种能力
  12. TFS2010物理迁移workspace恢复
  13. emos mysql_企业邮件部署详细步骤(EMOS)
  14. java求100以内奇数和
  15. Winrm+python远程连接windows执行命令
  16. 复指数与高斯函数乘积的傅里叶变换_量子力学杂谈——格林函数
  17. LM317稳压芯片在工程中的应用
  18. 某些Win10无法进入安全模式的修复
  19. BootStrap常用的元素与样式
  20. Pantoea(泛菌属)——肠道内善恶兼备的神秘细菌

热门文章

  1. 什么才是好代码、高质量代码?
  2. 浅析 Servlet 执行原理
  3. 最佳实践 | 中文文案排版指北
  4. CSS之使用display:inline-block布局
  5. java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/
  6. linux ssh连接交换机_linux SSH 隧道
  7. oracle11gr2 active data guard,Oracle11gR2 Aactive DataGuard(手动)装配部署及维护文档(三)之升级及rman...
  8. 盘点全球最美的15座数据中心
  9. Py之matplotlibseaborn :高级图可视化之​​​​​​​Q-Q分位数图probplot、​​​​​​​boxplot箱线图、stripplot分类散点图案例应用及代码实现
  10. Computer:屏幕录像专家软件的简介、安装、使用方法之详细攻略