【问题标题】:Entity Model or Pojo Class as a return object of REST API实体模型或 Pojo 类作为 REST API 的返回对象
【发布时间】:2019-12-09 14:53:05
【问题描述】:

我正在使用 REST API, 如果直接将模型类对象列表作为对用户的响应,是否有任何错误。 还是我需要在返回之前将那些实际模型类映射到任何 POJA 类?

例如: 如果 API 忘记了所有用户(“/Users”)

那么直接返回是不是一个好的编码方式

return userRepository.findAll();

或者需要在返回之前将其转换为任何List<UserPOJO>

或者有什么好的编码标准吗?

【问题讨论】:

    标签: java hibernate rest spring-boot jpa


    【解决方案1】:

    根据我的经验,通常最好将实体映射到等效的 POJO 类。

    这里有几个原因:

    1) 大多数时候,您不需要存储在实体中的所有数据。您只能映射响应中所需的子集。

    2) 从安全的角度来看,有某种中间立场总是好的,您可以在其中过滤掉实际上不应该放入响应中的敏感数据。或者仅适用于您可以在映射期间决定的某些用户。

    3) Hibernate 对象不是普通对象,它们是代理。这可能会导致不必要的延迟加载,例如 @OneToMany@ManyToMany 关系。你应该能够控制它,根据我的经验,杰克逊会加载所有可能的东西,除非你用 @JsonIgnore 注释它。

    除非您正在使用一个非常简单且安全性不高的应用程序,否则我将继续使用 Hibernate 对象。但除此之外,在大多数情况下,我会选择映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-11-29
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-18
      • 2022-12-21
      相关资源
      最近更新 更多