- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2016年度精品eclipse下生成Hibernte DAO
出自:hibernate的各种保存方式的区别 (save,persis,update,saveOrUpdte,merge等) 在所有之前,说明一下,对于hibernate,它的对象有三种状态,transient、persistent、detached????transient:瞬态或者自由态????persistent:持久化状态????detached:脱管状态或者游离态脱管状态的实例可以通过调用save()、persist()或者saveOrUpdate()方法进行持久化。持久化实例可以通过调用 delete()变成脱管状态。通过get()或load()方法得到的实例都是持久化状态的。脱管状态的实例可以通过调用 update()、0saveOrUpdate()、lock()或者replicate()进行持久化。save()和persist()将会引发SQL的INSERT,delete()会引发SQLDELETE,而update()或merge()会引发SQLUPDATE。对持久化(persistent)实例的修改在刷新提交的时候会被检测到,它也会引起SQLUPDATE。saveOrUpdate()或者replicate()会引发SQLINSERT或者UPDATE[推荐] 解析eclipse下生成Hibernate DAO中的几个方法出自: /xzknet/archive/2007/06/06/1641204.aspxvoid save(Usertable transientInstance)?????方法提供了向数据库中添加数据的功能void delete(Usertable persistentInstance)??????方法看名知意是用来删除的.Usertable findById(java.lang.Integer id)?????方法实现了按ID查询数据.List findByExample(Usertable instance)??????方法实现的功能相当于select * from Usertable实现的功能就是查询所有 List findByProperty(String propertyName, Object value)??????方法用来灵活的提供一种按条件查询的方法,你可以自己定义要按什么样的方式查询. CodeDepts merge(CodeDepts detachedInstance)??????将传入的detached状态的对象的属性复制到持久化对象中,并返回该持久化对象。如果该session中没有关联的持久化对象,加载一个,如果传入对象未保存,保存一个副本并作为持久对象返回,传入对象依然保持detached状态。void attachDirty(CodeDepts instance)?????将传入的对象持久化并保存。如果对象未保存(Transient状态),调用save方法保存。如果对象已保存(Detached状态),调用update方法将对象与Session重新关联。 attachClean(CodeDepts instance)?????将传入的对象状态设置为Transient状态。.merge(object)? 合并、吞入hibernate的各种保存方式的区别 (save,persis,update,saveOrUpdte,merge等) 如果session中存在相同持久化标识(identifier)的实例,用用户给出的对象的状态覆盖旧有的持久实例 如果session没有相应的持久实例,则尝试从数据库中加载,或创建新的持久化实例,最后返回该持久实例 用户给出的这个对象没有被关联到session上,它依旧是脱管的 重点是最后一句:????当我们使用update的时候,执行完成后,我们提供的对象A的状态变成持久化状态。????但当我们使用merge的时候,执行完成,我们提供的对象A还是脱管状态,hibernate或者new了一个B,或者检索到一个持久对象B,并把我们提供的对象A的所有的值拷贝到这个B,执行完成后B是持久状态,而我们提供的A还是托管状态NonUniqueObjectException问题的解决org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:解决方法:???? 使用 hibernate 3 的 merge 方法. session.merge(newDetail)即可,它会在 session 缓存中找到持久化对象,把新对象的属性赋过去,再保存原session中的持
您可能关注的文档
- 2013中美肿瘤合治疗论坛定.ppt
- 2013北师大二年级数学上册分物游课件.ppt
- 2013北师大版二年级上册学小熊请客课件.ppt
- 2013届高考地理一轮复习 42 山地的成课件.ppt
- 2013年人版七年级数学212整式ppt.ppt
- 2013年北京高中英语会考单选题 ppt.ppt
- 2013年围手术期抗菌物合理使用课件.ppt
- 2013年IDF老年2型糖尿管理全球指南解读课件.ppt
- 2013修改小学古诗综合复习课件.ppt
- 2013年教师招聘考试小学数真题汇编试卷.docx
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)