【问题标题】:Best way to update the entity object from DTO object using Hibernate and Spring使用 Hibernate 和 Spring 从 DTO 对象更新实体对象的最佳方法
【发布时间】:2018-06-03 17:01:32
【问题描述】:

首先解释一下上下文。我有可通过 Rest 客户端访问的后端 Java (Spring/Hibernate) 应用程序。 问题:由于 API 公开为 RestApi,我从客户端获取 DTO 对象,其中包含需要更新的实体 ID。

当前方法:我根据 ID 从 DB 获取实体,并将其从持久上下文中分离,将 DTO 对象转换为实体对象, 然后将它发送到 DAO,在那里我再次从 DB 中获取实体(因为 DAO 可以被其他内部类直接调用)然后再次分离它,然后调用合并操作。 因此,对于每个更新调用,休眠将触发 3 个选择语句和 1 个更新语句。有什么办法可以减少选择调用的次数。

【问题讨论】:

    标签: spring hibernate


    【解决方案1】:

    如果您的所有查询都在同一个会话中完成,hibernate 不应为每个对存储库的请求再次加载实体,只需在您的服务类上使用 @Transactional 注释

    另一种方法是使用hibernates二级缓存:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-22
      • 1970-01-01
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-29
      相关资源
      最近更新 更多