Hibernate Session的delete()方法
本文介绍Hibernate
Session的delete()方法。delete()方法用于从数据库中删除与Java对象对应的记录。对应游离对象和持久化对象,delete语句会做出不同的反应。
delete()方法用于从数据库中删除与Java对象对应的记录。如果传入的参数是持久化对象,Session就计划执行一个delete语句。如果传入的参数是游离对象,先使游离对象被Session关联,使它变为持久化对象,然后计划执行一个delete语句。值得注意的是,Session只有在清理缓存的时候的才执行delete语句。此外,只有当调用Session的close()方法时,才会从Session的缓存中删除该对象。
例如以下代码先加载一个持久化对象,然后通过delete()方法将它删除:
- Session session1 = sessionFactory.openSession();
- Transaction tx1 = session1.beginTransaction();
- // 先加载一个持久化对象
- Customer customer = (Customer)session.get(Customer.class, new Long(1));
- session.delete(customer); // 计划执行一个delete语句
- txt1.commit(); // 清理缓存,执行delete语句
- session.close();子// 从缓存中删除Customer对象
以下代码直接通过delete()方法删除一个游离对象:
- Session session2 = sessionFactory.openSession();
- Transaction tx2 = session1.beginTransaction();
- // 假定customer是一个游离对象,先使它被Session关联,使它变为持久化对象,
- // 然后计划执行一个delete语句
- session2.delete(customer);
- tx2.commit(); // 清理缓存,执行delete语句
- session2.close(); // 从缓存中删除customer对象
如果希望删除多个对象,可以使用另一种重载形式的delete()方法:
- session.delete("from Customer as c where c.id>8");
以上delete()方法的参数为HQL查询语句,delete()方法将从数据库中删除所有满足查询条件的记录。
【编辑推荐】
- Hibernate创建命名策略
- Hibernate的unsaved-value
- Hibernate中get和load方法的区别
- Hibernate Session的saveOrUpdate()方法
- Hibernate区分不同对象的方法
版权声明:本文为博主原创文章,未经博主允许不得转载。
Hibernate Session的delete()方法的更多相关文章
- hibernate 关于session的update方法
先看写代码的方法: @Test public void testUpdate3() { Teacher t = new Teacher(); ...
- hibernate的session对象核心方法注意的问题
1.session.save()方法 1).session.save()方法会使一个对象从临时状态转变为持久化状态. 2).session.save()方法会赋予持久化对象的OID属性一个ID值,以对 ...
- Hibernate中session的save方法问题
今天在使用session.save(),进行插入数据操作时,一直没有成功,也没有报错.后来发现是因为没有创建事务,提交事务的原因 你对flush和commit的意思没有理解到:1,flush代表刷新, ...
- [原创]java WEB学习笔记79:Hibernate学习之路--- 四种对象的状态,session核心方法:save()方法,persist()方法,get() 和 load() 方法,update()方法,saveOrUpdate() 方法,merge() 方法,delete() 方法,evict(),hibernate 调用存储过程,hibernate 与 触发器协同工作
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
- Hibernate(5)session的方法
1. Session缓存 Session缓存(Hibernate一级缓存),在 Session 接口的实现中包含一系列的 Java 集合, 这些 Java 集合构成了 Session 缓存.只要 Se ...
- Hibernate框架session的方法
package Test; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernat ...
- Hibernate之Session对象的相关方法以及持久化对象的状态
一.持久化对象的状态 站在持久化的角度, Hibernate 把对象分为 4种状态: 持久化状态,临时状态,游离状态,删除状态.Session 的特定方法能使对象从一个状态转换到另一个状 ...
- Hibernate中Session的几个方法的简单说明
Hibernate对普通JDBC的操作进行了轻量级的封装,使得开发人员可以利用Session对象以面向对象的思想来实现对关系数据库的操作. 一般通过Configuration对象读取相应的配置文件来创 ...
- Hibernate Session对象核心方法
1. 持久化对象的状态: 站在持久化的角度,Hibernate 把对象分为四种状态:持久化状态,临时状态,游离状态,删除状态 Session 的特定方法能使对象从一个状态转到另一个状态 临时对象: 在 ...
随机推荐
- antd引入普通html使用,将ant Design本地化
一直想着能本地化antd的,不用npm以及dva那么复杂的配置环境来开发,并且本地化以后对以后链接flask的模板渲染机制也能很好的结合.下面是具体的实现方法: 1.将react的相关链接引入: &l ...
- 2015年多校联合训练第一场OO’s Sequence(hdu5288)
题意:给定一个长度为n的序列,规定f(l,r)是对于l,r范围内的某个数字a[i],都不能找到一个相应的j使得a[i]%a[j]=0.那么l,r内有多少个i,f(l,r)就是几. 问全部f(l,r)的 ...
- 【BZOJ3992】[SDOI2015]序列统计 NTT+多项式快速幂
[BZOJ3992][SDOI2015]序列统计 Description 小C有一个集合S,里面的元素都是小于M的非负整数.他用程序编写了一个数列生成器,可以生成一个长度为N的数列,数列中的每个数都属 ...
- 九度OJ 1072:有多少不同的面值组合? (计数)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3112 解决:1591 题目描述: 某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少种不同的 ...
- 九度OJ 1022:游船出租 (统计)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:3670 解决:1444 题目描述: 现有公园游船租赁处请你编写一个租船管理系统.当游客租船时,管理员输入船号并按下S键,系统开始计时 ...
- adaptive heuristic critic 自适应启发评价 强化学习
https://www.cs.cmu.edu/afs/cs/project/jair/pub/volume4/kaelbling96a-html/node24.html [旧知-新知 强化学习:对 ...
- cocos2d-js添加百通广告(通过jsb反射机制)
1.导入jar包,包括so文件 2.配置AndroidManifest.xml文件,添加: <!-- BDAPPUNIONSDK start --> <activity androi ...
- Map总结--HashMap/HashTable/TreeMap/WeakHashMap使用场景分析(转)
首先看下Map的框架图 1.Map概述 1.Map是键值对映射的抽象接口 2.AbstractMap实现了Map中绝大部分的函数接口,它减少了“Map实现类”的重复编码 3.SortedMap有序的“ ...
- Java for LeetCode 088 Merge Sorted Array
Given two sorted integer arrays nums1 and nums2, merge nums2 into nums1 as one sorted array. 解题思路一: ...
- Android tab页制作
全屏启动页 activity_launcher <?xml version="1.0" encoding="utf-8"?> <Relativ ...