Hibernate 中的attachDirty,attachClean,merge,findByProperty和findByExample
本文地址:http://blog.csdn.net/shanglianlm/article/details/51209825
attachDirty:将传入的对象持久化并保存。如果对象未保存(Transient状态),调用save方法保存。如果对象已保存(Detached状态),调用update方法将对象与Session重新关联。
public void attachDirty(Addressbook instance) {log.debug("attaching dirty Addressbook instance");try {getHibernateTemplate().saveOrUpdate(instance);log.debug("attach successful");} catch (RuntimeException re) {log.error("attach failed", re);throw re;}}
attachClean:将传入的对象状态设置为Transient状态。
public void attachClean(Addressbook instance) {log.debug("attaching clean Addressbook instance");try {getHibernateTemplate().lock(instance, LockMode.NONE);log.debug("attach successful");} catch (RuntimeException re) {log.error("attach failed", re);throw re;}}
merge:将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象 。如果该session中没有关联的持久化对象,加载一个,如果传入对象未保存,保存一个副本并作为持久对象返回,传入对象依然保持detached状态。
public Addressbook merge(Addressbook detachedInstance) {log.debug("merging Addressbook instance");try {Addressbook result = (Addressbook) getHibernateTemplate().merge(detachedInstance);log.debug("merge successful");
return result;} catch (RuntimeException re) {log.error("merge failed", re);throw re;}}
findByProperty: propertyName指向列明,value对应的值,这样写便于对该表不同字段查询合用一个方法,查询时传入要查的列名和对应的值就可以了,例如HQL查询商品信息的语句如下:
String querysql = “from GoodsInfo as u where u.”+propertyName+” like ‘%”+value+”%’ order by u.goods_price asc”
public List findByProperty(String propertyName, Object value) {log.debug("finding Addressbook instance with property: " + propertyName+ ", value: " + value);try {String queryString = "from Addressbook as model where model."+ propertyName + "= ?";return getHibernateTemplate().find(queryString, value);} catch (RuntimeException re) {log.error("find by property name failed", re);throw re;}}
findByExample:
public List findByExample(Addressbook instance) {log.debug("finding Addressbook instance by example");try {List results = getHibernateTemplate().findByExample(instance);log.debug("find by example successful, result size: "+ results.size());return results;} catch (RuntimeException re) {log.error("find by example failed", re);throw re;}}
Hibernate 中的attachDirty,attachClean,merge,findByProperty和findByExample相关推荐
- hibernate中merge/attachDirty/attachClean
想探讨下 hibernate中merge/attachDirty/att achClean用法 merge:将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象 .如果该se ...
- Hibernate中常见的异常
1. net.sf.hibernate.MappingException 当出现net.sf.hibernate.MappingException: Error reading resou ...
- hibernate中对象的状态有三种
一,首先hibernate中对象的状态有三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate().get().load ...
- Hibernate中ManyToOne删除Many的一方出现 deleted object would be re-saved by cascade
最近在写SSH整合时出现了 deleted object would be re-saved by cascade这个错误 我的Hibernate关系映射文件如下 <many-to-one na ...
- Hibernate中的注解说明
Hibernate中注解注解比较多,常用的也就那么几个,在这里把Hibernate中的注解汇总总结一下. @Entity:将一个类声明为一个实体bean,即一个持久化POJO; @Id:声明bean的 ...
- hibernate中的hql查询语句list查询所有与iterate查询所有的区别
hibernate中的hql查询语句list查询所有与iterate查询所有的区别 list查询所有: 01,会立即产生一条select语句1select查询出来的所有语句都会被session管理, ...
- HQL语句中数据类型转换,及hibernate中createQuery执行hql报错
一.HQL语句中数据类型转换: 我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基 ...
- Hibernate-ORM:05.Hibernate中的list()和iterator()
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- Hibernate中查多条(全部)使用list()或iterator() 本篇介绍: 1.如何使用list() ...
- 具体解释Hibernate中的事务
1.前言 上一篇博客解说了Hibernate中的一级缓存,属于Session级别的.这篇博客解说一下Hibernate中的事务机制. 有关事务的概念.请參照通俗易懂数据库中的事务. 2.怎样处理Hi ...
最新文章
- LSTM入门学习——结合《LSTM模型》文章看
- SSO单点登录之——JWT
- html第二章课后选择题答案,HTML课后习题(带答案).doc
- 12v小型电机型号大全_鄂破碎机型号大全图,小型鄂破碎机价格
- 1910101811
- Silverlight 3.0 RTW引入-- 鼠标滚动事件
- 如何隐藏电脑下方工具栏个别图标_最酷!最帅!最拽!这就是你想要的样子!工具栏美化终极篇...
- springcloud工作笔记097---idea集成Mapper接口点击后自动跳转到对应的xml文件中
- IDEA采用Debug模式无法启动项目,但是采用普通模式可以正常启动项目
- 读书笔记_打开量化投资的黑箱06
- 《Android游戏编程入门经典》——4.6节问与答
- CNN实现手写数字识别
- 基于校园图书管理系统需求分析
- 转发-分享手机游戏辅助编程开发教程
- 关于如何使用java,将Office文件转换成PDF格式
- itest(爱测试) 4.2.1 发布,开源BUG 跟踪管理 敏捷测试管理软件
- IP地址、网络地址、网关的作用
- Android利用反射获取WLAN热点信息
- 鼠标滑轮只能控制声音?
- Unity基础开发之事件函数的执行顺序