网站大量收购闲置独家精品文档,联系QQ:2885784924

hibernate常见问题及处理.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate  常见异常 当出现  异常时 一般是因为映射文 件出现错误。 XML  当出现 Resource: 配置文件没找到所致, 有可能是放置目录不正确, 或者没将其加入  not found 是因为 中。 当 出 现   Could  not  find  a setter for property name in class  时 ,原因一般是因为  XML  映射文件中的属性与对应的  Java 类中的属性 的 getter 或 setter 方法不一致。 当出现 ids for this class must be manually assigned before calling save(): 异常时,一般是因为 id 元素配 置不正确, id 元素缺少其子元素 generator/generator 的配置引起。 解决方案: class=, 其中  id class  元素映射了相应数据库表的主键字段,对其子元素  generator 的取值可以为  increment  、 identity  、 sequence  、 hilo  、 native  等,更多的可参考 hibernate  参考文档,一般取其值为  native  。具体可参考   小节。 a different object with the same identifier value was already associated with the session 当 出 现 a  different  object  with  the  same  identifier  value  was  already associated with the session  时,一般是因为在  hibernate  中同一个  session  里面有了两个相同标识但是是不 同实体。 有如下几种解决方案: (1 )使用 session.clean() ,如果在 clean 操作后面又进行了 saveOrUpdate(object) 等 改 变 数 据 状 态 的 操 作 , 有 可 能 会 报 出 Found two representations of same collection (2 )使用  session.refresh(object)  ,当 object  不是数据库中已有数据的对象的时候,  不 能使用 session.refresh(object) 因为该方法是从 hibernate 果 session 中没有这个对象,则会报错所以当你使用  的 session 中去重新取 saveOrUpdate(object)  object ,如 之前还需要 判断一下。 (3 ) session.merge(object)  , Hibernate  里面自带的方法,推荐使用。 再次碰到  :a different object with the same identifier value was already associated with the session 这个错误我一共遇到过两次, 一直没有找到很好的解决方案, 这个错误产生原因相 信大家都知道,因为在 hibernate 中同一个 session 里面有了两个相同标识但是是不同实 体. 一开始按网上说的用 session.merge(Object) 报了一个错,可能是没有用好,改用 session.clear(); session.update(user); 这样就 OK 了, 方法为: ... public void modifyByMerge(User user) { Session session = getHibernateTemplate().getSessionFactory(). getCurrentSession(); session.clear(); session.update(user); } ... 项 目 用 的 是 spring + hibernate 所 以 得 用 getHibernateTemplate().getSessionFactory ().getCurrentSession(); 得当前 Session 5. SQL Grammer Exception,Could not execute JDBC batch update 当出现 SQL Grammer Exception,Could not execute JDBC batch update 异常时,一般是由如下问题 引起: 1 ) SQL 语句中

文档评论(0)

ly22890 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档