【问题标题】:Spring JPA Save Method - Performance IssueSpring JPA 保存方法 - 性能问题
【发布时间】:2020-06-03 08:18:51
【问题描述】:

我在 JPA save() 方法中有一个性能问题。我有“CustomerHistory”表,它就像一个日志表,我什至没有在我的应用程序中使用这个表数据。 (我没有在表中执行任何获取查询操作)。但是,如果我使用 JPA Save Method 保存“CustomerHistory”模型,则意味着每次保存数据后都会返回 CustomerHistory 模型。所以我需要知道它是否在性能中发挥重要作用?

 public CustomerHistory saveCustomerHistoryLog(CustomerHistory  customerHistory ){
    return customerHistoryRepository.save(customerHistory );
}

【问题讨论】:

    标签: mysql spring-boot spring-data-jpa


    【解决方案1】:

    如果CustomerHistory与其他实体没有任何关系,应该没问题。

    但是即使它与其他实体有关系,并且如果您遵循在映射相关实体时不启用预取的最佳实践,它也不应该影响性能,因为它们是延迟加载的,并且不会出现不必要的 SQL如果您不访问它们,则触发加载它们。

    【讨论】:

      【解决方案2】:

      由于提供了在应用程序代码中生成的@Id 值,我遇到了类似的问题。

      请确保使用@Id 注释的主键列应为空并使用@GeneratedValue(strategy = GenerationType.AUTO) 生成。然后 JPA 将其视为新记录。

      如果您在代码中提供主键列,则 JPA 将其视为更新,因此它将根据获取结果执行更新/插入操作。在这种情况下,可能会有延迟。

      如果您对该表所做的只是插入记录,则将 @Id 列提供为 null 并自动生成。

      【讨论】:

        【解决方案3】:

        在这里我找到了一些提高 jpa 保存方法性能的方法:

        Improve JPA Save Method Performances

        【讨论】:

          猜你喜欢
          • 2018-06-25
          • 1970-01-01
          • 2018-07-22
          • 2015-06-30
          • 1970-01-01
          • 2018-09-25
          • 2018-07-26
          • 2021-03-27
          • 1970-01-01
          相关资源
          最近更新 更多