【问题标题】:JPA save/update only if modificationsJPA 仅在修改时保存/更新
【发布时间】:2019-03-12 23:06:46
【问题描述】:

我有一个问题,使用 Spring JPA,我没有发现任何关于保存实体的信息,只有在有修改的情况下。而且我不是在谈论保存某些字段。

在 JPA 实体管理器加载数据库数据后,如何在保存实体之前验证字段是否有修改/更改。无需获取每个字段并通过以下方式进行验证: 如果(字段!= ...)

    Class i = repo.findByExternalId(externalId);

    ...

    if (modifications)
       repo.save(i);
     else
       //don't save

我尝试使用 dynamic-update=true 但它不起作用。

如果您有一些关于在网络上搜索什么的信息……那也会很有帮助。

谢谢。

【问题讨论】:

  • 如果你有适当的hashCode/equals 实现,ORM 应该自动处理它。您只需致电save,仅在必要时才会转换为数据库活动。

标签: spring spring-data-jpa repository entitymanager


【解决方案1】:

只是不要调用save(),而是将所有内容放在一个事务中。

JPA 将为您进行检查并在必要时保存更改。

【讨论】:

  • 我明天试试这个:) 谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-21
  • 1970-01-01
  • 1970-01-01
  • 2017-05-30
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
相关资源
最近更新 更多