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

时间:2017-05-16 09:57:00

标签: java spring hibernate

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

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

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

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

2 个答案:

答案 0 :(得分:1)

如果您使用的是Hibernate,那么当您可以使用 Hibernate Sessions ' s {{{}时,为什么要在原生SQL内进行此操作1}},.get().load() .merge()方法。

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

.update()

如需进一步阅读,您可以查看Hibernate文档中的Modifying persistent objectsModifying detached objects部分。

根据文件:

  

更新对象状态的最简单方法是DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) ); cat.setName("PK"); sess.flush(); // changes to cat are automatically detected and persisted 它,然后在Session打开时直接操作它。

我希望这能解答您的问题哪种方式可以执行更新操作?为什么?

答案 1 :(得分:0)

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

两种方法都有效,但第一种方法允许您更新多个字段而无需修改SQL查询。在调用saveOrUpdate方法之前,开发人员负责处理对象的状态。

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

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

然后你会得到答案。