- //关于merge()attachDirty()attachClean()三种方法下面做一个简单的介绍
- /**
- *将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象。
- *如果该session中没有关联的持久化对象,加载一个,如果传入对象未保存,保存一个副本并作为持久对象返回,传入对象依然保持detached状态。
- */
- publicCodeDeptsmerge(UsertabledetachedInstance){
- log.debug("mergingUsertableinstance");
- try{
- Usertableresult=(Usertable)getSession()
- .merge(detachedInstance);
- log.debug("mergesuccessful");
- returnresult;
- }catch(RuntimeExceptionre){
- log.error("mergefailed",re);
- throwre;
- }
- }
- /**
- *将传入的对象持久化并保存。
- *如果对象未保存(Transient状态),调用save方法保存。如果对象已保存(Detached状态),调用update方法将对象与Session重新关联。
- */
- publicvoidattachDirty(Usertableinstance){
- log.debug("attachingdirtyUsertableinstance");
- try{
- getSession().saveOrUpdate(instance);
- log.debug("attachsuccessful");
- }catch(RuntimeExceptionre){
- log.error("attachfailed",re);
- throwre;
- }
- }
- /**
- *将传入的对象状态设置为Transient状态
- */
- publicvoidattachClean(Usertableinstance){
- log.debug("attachingcleanUsertableinstance");
- try{
- getSession().lock(instance,LockMode.NONE);
- log.debug("attachsuccessful");
- }catch(RuntimeExceptionre){
- log.error("attachfailed",re);
- throwre;
- }
- }
关于Hibernate的merge() attachDirty() attachClean()三种方法比较使用
最新推荐文章于 2017-01-18 18:36:55 发布