【问题标题】:Hibernate refresh?休眠刷新?
【发布时间】:2011-03-26 14:03:32
【问题描述】:

我正在使用 hibernate 和 mysql 来抽象数据库以用于 Java 驱动的网站。我使用 hibernate 让我的所有查询都能正常工作,但似乎无法弄清楚如何使用它进行更新、插入和删除,所以我最终制作了自己的 bean,它使用常规的 mySQL 方法来完成这些功能。

我现在遇到的问题是,当我使用常规 mysql 进行更新或插入时,数据库中的持久休眠对象不会更新,但存储在数据库中的数据会更新。如何重新同步或“刷新”休眠信息以匹配 mysql 信息?

或者如果它更容易,我如何将修改过的对象从休眠保存/更新到 msql 中。 (显然我是新来的休眠)任何帮助将不胜感激。提前谢谢!

【问题讨论】:

  • 请标记正确答案。

标签: java hibernate lazy-loading hibernate-mapping


【解决方案1】:

使用标准 SQL 持久化数据似乎在某种程度上违背了使用 Hibernate 的目的。我的建议是进行更改,以便您可以通过 Hibernate 进行数据的检索和保存。根据您的设置,它可以像从会话工厂获取会话并调用 save 方法一样简单。

  Session session = sessionFactory.getSession();
  session.save(hibernateObject);

根据我的经验,Hibernate 文档非常好。略读它可能是一个值得的努力。特别是这一段:Chapter 10: Working with Objects

【讨论】:

  • 顺便说一句...您是否将其作为 Web 应用程序的一部分,该应用程序也使用另一个框架,如 Spring?如果是这样,您可能会考虑利用 Spring 的 Hibernate 集成可能对事物的会话管理方面有所帮助。
  • 不,我没有在这个项目中使用 Spring。我认为添加它为时已晚。 :(
  • 我不知道您使用的环境是什么......所以我只是想我会把它扔在那里。以防万一您使用 Spring 并且没有意识到集成是一种选择。我会尝试上面列出的代码,看看它是如何为你工作的。我自己不是休眠专家(至少在从头开始配置事物时不是……实际上我现在正在学习这一点)
【解决方案2】:
猜你喜欢
  • 1970-01-01
  • 2014-02-03
  • 2010-11-13
  • 1970-01-01
  • 2011-12-29
  • 1970-01-01
  • 2019-03-26
  • 2012-12-23
  • 2012-07-04
相关资源
最近更新 更多