程序员最近都爱上了这个网站  程序员们快来瞅瞅吧!  it98k网:it98k.com

本站消息

站长简介/公众号

  出租广告位,需要合作请联系站长


+关注
已关注

分类  

暂无分类

标签  

暂无标签

日期归档  

暂无数据

Hibernate 模板的问题

发布于2023-01-07 04:39     阅读(1128)     评论(0)     点赞(22)     收藏(0)


我使用休眠来保存、更新和删除数据库中的数据,但我遇到了一些问题。

例如,我请求保存或更新数据库中的数据

getHibernateTemplate().saveOrUpdate(client);
getHibernateTemplate().flush();

当我第一次启动我的服务器 (TomCat) 并保存我的数据时,一切正常,在我的数据库中我看到了我的数据。

如果我删除数据并运行客户端的新保存,即使我删除了数据,它也会执行更新而不是插入。


解决方案


那是因为对象已经在内存中并且休眠已经持久化了它们。当应用程序启动时,如果没有另外定义,hiberante 会在需要时将对象加载到内存中(延迟获取)。当对象以编程方式更改时,hibernate 会将对象持久保存到数据库中。你不需要使用save(), 只是commit(). save仅用于新创建的对象,update()用于将分离的对象重新附加到会话。

如果不使用 hibernate 就无法更改数据库数据,并且期望 hibernate 意识到数据库已更改。session您必须使用休眠方法更改数据。

如果你不使用hibernate改变数据并且你想让hibernate重新加载对象,使用session.refresh()方法从数据库重新加载对象到内存中。这样数据库中的更改将反映在内存中加载的对象中。

Hibernate 文档第 10 章中的更多信息



所属网站分类: 技术文章 > 问答

作者:黑洞官方问答小能手

链接:http://www.javaheidong.com/blog/article/617017/5d238e952c745d82a48b/

来源:java黑洞网

任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任

22 0
收藏该文
已收藏

评论内容:(最多支持255个字符)