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

标签 java spring hibernate

我想通过 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 objectsModifying 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/

相关文章:

java - 删除 appengine blobstore 中的孤立 blob

java - 从包含 3 channel 像素信息的 3d 字节数组创建 java 位图图像

java - hibernate 事务没有正确回滚

java - Python - 线程、时序或函数使用?

java - Javadoc 在 Eclipse 中做了什么?

spring - 为什么首页无法访问/spring boot应用

java - 通过 Spring JDBC 流式传输数据,长度未知

spring - 我们如何将 Mono<List<Type>> 转换为 Flux<Type>

java - Junit 4 看不到 bean

mysql - 如何使用 hibernate 设置 MariaDb 驱动程序属性