hibetnateTemplate经常使用方法

1、hibetnateTemplate经常使用方法

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

二、deleteAll(Collection entities) 删除集合内所有持久化实例
entities必须为持久化实例,不然报数据库异常错误。

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

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

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

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

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

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

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

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

相关文章
相关标签/搜索