一、hibetnateTemplate常用方法

1、delete(Object entity) 删除指定的持久化实例
在程序中一般先用    Assert.notNull和 Assert.isTrue断言entity是否为空 和 entity的id是否大于0若
否则事务回滚。再用get(Class entityClass,Serializable id,LockMode lockMode)加锁查询出持久
化实例,一般用lockMode.update悲观锁,最后用delete(Object entity)来删除此实例。

2、deleteAll(Collection entities) 删除集合内全部持久化实例
entities必须为持久化实例,否则报数据库异常错误。

3、find(String queryString) 根据HQL查询字符串来返回实例集合
find方法在执行时会先查找缓存,如果缓存找不到再查找数据库,如果再找不到就会返回null。

4、get(Class entityClass,Serializable id)根据主键加载特定持久化实例
在程序中一般先用     Assert.isTrue断言id是否大于0,若大于0继续执行,若查到数据则返回实例,否则返回空
不同于load,load若有数据则返回实例,否则报出ObjectNotFoundEcception异常,相比来说get效率高些

5、save(Object entity) 保存新的实例
在程序中一般先用    Assert.notNull断言实体是否为空,在进行保存。

6、saveOrUpdate(Object entity)根据实例的状态选择保存或者是更新
此方法同时包含了save与update方法的功能,如果传入的参数是临时对象vo 没有id,就调用save方法;如果传
入的参数是游离对象有id,就调用update()方法;如果传入的参数是持久化对象po,就直接返回。

7、update(Object entity) 更新实例的状态 实例必须为持久化状态
在程序中一般先用    Assert.notNull和 Assert.isTrue断言entity是否为空 和 entity的id是否大于0,
然后在更新实例,entity必须含有id否则不能更新。

8、Object execute(hibetnateCallback action)是HibernateCallback接口类。 
当dao中的方法不能满足程序需要时可以考虑用此方法。如:根据几个不同参数需要返回唯一实体时用uniqueResult()返回。
HibernateCallback里面定义了一个doInHibernate的方法,这个方法是可变的。如果要查找数据方法应该就
是:session.load()。删除数据就是session.delete().这样的话查询数据库的方法用execute方法。

 
9、bulkUpdate()通过语句直接增加、更新、删除实体 
一般有bulkUpdate(String sqlString) 和 bulkUpdate(String sqlString,Object[] object)两个
方法,返回增加,更新,或者删除的数量一般用于批量。
 
10、hibernate主键生成策略
 
(1)Assigned: 在插入数据的时候主键由用户自己添加。如:<generator class="assigned"/>
(2)sequence: 调用数据库的sequence来生成主键,要设定序列名,否则hibernate无法找到。
如:<param   name="sequence">ENTTY_NAME_SEQ</param>
(3)increment 插入数据的时候hibernate会给主键添加一个自增的主键,但是一个hibernate实例就维护一个计数器,
所以在多个实例运行的时候不能使用这个方法。

11、实体对象的三种状态
Session的生命周期绑定在一个物理的事务(tansaction)上面。
Session的主要功能是提供对映射的实体类实例的创建,读取和删除操作
(1)自由状态(transient): 不曾进行持久化,未与任何Session相关联
(2)持久化状态(persistent): 仅与一个Session相关联
持久化实例可以通过调用 delete()变成游离状态。通过get()或load()方法得到的实例都是持久化状态的
(3)游离状态(detached): 已经进行过持久化,但当前未与任何Session相关联
游离状态的实例可以通过调用update(),lock(),replicate(),save(),persist()或者saveOrUpdate()方法进行持久化

hibetnateTemplate常用方法的更多相关文章

  1. 前端开发:Javascript中的数组,常用方法解析

    前端开发:Javascript中的数组,常用方法解析 前言 Array是Javascript构成的一个重要的部分,它可以用来存储字符串.对象.函数.Number,它是非常强大的.因此深入了解Array ...

  2. Jquery元素选取、常用方法

    一:常用的选择器:(李昌辉) 基本选择器 $("#myDiv") //匹配唯一的具有此id值的元素 $("div") //匹配指定名称的所有元素 $(" ...

  3. python浅谈正则的常用方法

    python浅谈正则的常用方法覆盖范围70%以上 上一次很多朋友写文字屏蔽说到要用正则表达,其实不是我不想用(我正则用得不是很多,看过我之前爬虫的都知道,我直接用BeautifulSoup的网页标签去 ...

  4. C# Webbrowser 常用方法及多线程调用

    设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagNa ...

  5. list,tuple,dict,set常用方法

    Python中list,tuple,dict,set常用方法 collections模块提供的其它有用扩展类型 from collections import Counter from collect ...

  6. 记录yii2-imagine几个常用方法

    记录yii2-imagine几个常用方法: //压缩 Image::thumbnail('@webroot/img/test-image.jpg', 120, 120)->save(Yii::g ...

  7. DOM常用方法总结

    DOM(Document Object Model:文档对象模型)为javascript中的一部分,它为访问和修改html文档或xml文档提供了一些编程接口,DOM以对象的形式来描述文档中的内容,以树 ...

  8. JSP内置对象及常用方法

    jsp九大内置对象及四个作用域: 何为作用域 先让我们看看效果: 大概流程是这样的,我们访问index.jsp的时候,分别对pageContext, request, session,applicat ...

  9. java中集合类中Collection接口中的Map接口的常用方法熟悉

    1:Map接口提供了将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值.Map接口中同样提供了集合的常用方法. 2:由于Map集合中的元素是通过key,value,进行存储的,要 ...

随机推荐

  1. nefu 753 n!末尾有多少个0

    Problem : 753 Time Limit : 1000ms Memory Limit : 65536K description 计算N!末尾有多少个0 input 输入数据有多组,每组1行,每 ...

  2. 发现在看完objc基本语法之后,还是看Apple文档比较有用。

    现在已经停止找中文资料了,因为很多例子已经过时,运行不出来. 看完objc基本语法以后,Apple的资料也看得懂了. 还是应该跟着Apple的入门指南开始学,今后也应该以Apple的文档为主.

  3. PHP之Zip扩展,解压缩文件,ZipArchive类

    <?php $zip = new ZipArchive();//新建一个对象 /* $zip->open这个方法第一个参数表示处理的zip文件名. 第二个参数表示处理模式,ZipArchi ...

  4. DLT(Diagnostic Log and Trace)嵌入式系统程序运行记录

    http://blog.csdn.net/yanlinembed/article/details/49837975 DLT的使用有属于Application范畴与Context范畴.在使用DLT时,需 ...

  5. 分页打印控制 摘自于网络:http://www.cnblogs.com/joinger/articles/1807517.html

    代码 style="page-break-after:always;"> 利用CSS控制打印 放在这里,算是一个备份 <style> @media print{ ...

  6. block 的演练和使用

    概念 block 是 C 语言的 是一种数据类型,可以当作参数传递 是一组预先准备好的代码,在需要的时候执行 动画 block 回顾 self.demoView.center = CGPointMak ...

  7. Spring Boot 系列教程5-热部署-devtools模块

    devtools模块 devtools模块,是为开发者服务的一个模块.主要的功能就是代码修改后一般在5秒之内就会自动重新加载至服务器,相当于restart成功. 原理 简单原理 在发现代码有更改之后, ...

  8. selenium工具简介

    通过selenium百科可知: 组件 Selenium IDE:一个Firefox插件,可以录制用户的基本操作,生成测试用例.随后可以运行这些测试用例在浏览器里回放,可将测试用例转换为其他语言的自动化 ...

  9. [转]Android之Context和Activity互相转换

    1.context转换为activity Activity activity = (Activity) context; 2.从activity得到context 在activity的方法中用cont ...

  10. 批量文件重命名工具-极力推荐 advanced renamer

    http://www.advancedrenamer.com/  功能太强大了,自己慢慢探索吧.