首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java Spring Hibernate项目中更新数据库对象的最佳实践是什么

问在Java Spring Hibernate项目中更新数据库对象的最佳实践是什么
EN

Stack Overflow用户
提问于 2017-05-16 17:57:00
回答 2查看 799关注 0票数 1

我想通过MySQL数据库中的唯一ID更新字段。

第一种方法:使用唯一ID (通过uniqueresult())从数据库中获取对象(select * from),然后将期望的值设置为object,然后执行saveOrUpdate。

第二种方法是在DAO实现(update table tab set tab.name=123 where...、executeUpdate())中编写更新查询,结果也是一样的。

执行更新操作的好方法是什么?为什么?

EN

回答 2

Stack Overflow用户

发布于 2017-05-16 19:00:58

如果你正在使用Hibernate,当你可以使用 的.get(),.load(),.merge() .update()方法时,为什么还要在原生的SQL中这样做呢?

下面是Hibernate文档中修改持久化对象的示例:

代码语言:javascript
复制
DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) );
cat.setName("PK");
sess.flush();  // changes to cat are automatically detected and persisted

要进一步阅读,可以查看Hibernate文档中的和部分。

根据文档:

更新对象状态的最直接的方法是对其执行load()操作,然后在会话打开时直接操作它。

我希望这回答了您的两个问题,这是执行更新操作的好方法,为什么?

票数 1
EN

Stack Overflow用户

发布于 2017-05-16 18:19:07

没有“好方法”来执行您想要的更新。它完全取决于您的需求。

这两种方法都有效,但第一种方法允许您在不必修改sql查询的情况下更新多个字段。在调用saveOrUpdate方法之前,开发人员有责任关注对象的状态。

第二种方法将确保不会更新数据库中的其他字段。

回答你未来的需求。您是否只需要更新此字段?它在未来会改变吗?这两种方法对应用程序的影响是什么?

然后你就会得到你的答案了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43998216

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档