关于Hibernate的merge() attachDirty() attachClean()三种方法比较使用

  1. //关于merge()attachDirty()attachClean()三种方法下面做一个简单的介绍
  2. /**
  3. *将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象。
  4. *如果该session中没有关联的持久化对象,加载一个,如果传入对象未保存,保存一个副本并作为持久对象返回,传入对象依然保持detached状态。
  5. */
  6. publicCodeDeptsmerge(UsertabledetachedInstance){
  7. log.debug("mergingUsertableinstance");
  8. try{
  9. Usertableresult=(Usertable)getSession()
  10. .merge(detachedInstance);
  11. log.debug("mergesuccessful");
  12. returnresult;
  13. }catch(RuntimeExceptionre){
  14. log.error("mergefailed",re);
  15. throwre;
  16. }
  17. }
  18. /**
  19. *将传入的对象持久化并保存。
  20. *如果对象未保存(Transient状态),调用save方法保存。如果对象已保存(Detached状态),调用update方法将对象与Session重新关联。
  21. */
  22. publicvoidattachDirty(Usertableinstance){
  23. log.debug("attachingdirtyUsertableinstance");
  24. try{
  25. getSession().saveOrUpdate(instance);
  26. log.debug("attachsuccessful");
  27. }catch(RuntimeExceptionre){
  28. log.error("attachfailed",re);
  29. throwre;
  30. }
  31. }
  32. /**
  33. *将传入的对象状态设置为Transient状态
  34. */
  35. publicvoidattachClean(Usertableinstance){
  36. log.debug("attachingcleanUsertableinstance");
  37. try{
  38. getSession().lock(instance,LockMode.NONE);
  39. log.debug("attachsuccessful");
  40. }catch(RuntimeExceptionre){
  41. log.error("attachfailed",re);
  42. throwre;
  43. }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值