0

我在 Spring Boot 上编写 API 时遇到实体的部分更新问题。例如,当我想更新用户名时,spring 将其他字段视为 null 并用数据库中的 null 替换数据。正如我在文档中读到的,@DynamicUpdate 必须解决这个问题,但它对我不起作用。

这是我的用户实体。

@Entity
@Table(name="users")
@DynamicUpdate
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    //other fields...

}
4

1 回答 1

1

改用合并

Entity en = sessionFactory.getCurrentSession().get(id);
en.setName("abc");
sessionFactory.getCurrentSession().merge(en);

Entity(dynamicUpdate = true) 的性能问题
在具有许多列(遗留设计)或包含大量数据的大表中,更新一些未修改的列是绝对没有必要的,并且对系统性能影响很大。

于 2018-12-14T11:10:41.463 回答