我想通过 MySQL 数据库中的唯一 ID 更新字段。
第一种方法:使用唯一 ID(通过 select * from
)从数据库中获取对象( uniqueresult()
),然后将所需的值设置为对象和 saveOrUpdate
被执行。
第二种方法是在 DAO 实现中编写更新查询( update table tab set tab.name=123 where...
、 executeUpdate()
),也是相同的结果。
哪种是执行更新操作的好方法?为什么?
最佳答案
如果您使用的是 Hibernate
,那么当您可以只使用 Hibernate
Sessions 时,为什么要在 native SQL
中执行此操作呢? 的.get()
、.load()
、.merge()
.update()
方法。
下面是 Hibernate 文档中修改持久对象的示例:
DomesticCat cat = (DomesticCat) sess.load( Cat.class, new Long(69) );
cat.setName("PK");
sess.flush(); // changes to cat are automatically detected and persisted
要进一步阅读,您可以查看Modifying persistent objects和 Modifying detached objects Hibernate 文档中的部分。
根据文档:
The most straightforward way to update the state of an object is to
load()
it and then manipulate it directly while the Session is open.
我希望这能回答您的问题哪种是执行更新操作的好方法以及为什么?。
关于java - Java Spring Hibernate 项目中更新数据库对象的最佳实践是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43998216/