Spring MVC - 控制哪些实体字段被序列化

时间:2017-08-23 19:35:44

标签: spring-mvc jackson entity dto

我目前正在将我的实体直接用作我的控制器方法的响应类型和请求参数(而不是DTO)。我希望从响应中过滤掉一些字段,更好的做法是使用@JsonIgnore注释在我的实体类中的字段(从而混乱我的模型)或专门为必需字段创建DTO。从设计的角度来看哪种方法更好?

1 个答案:

答案 0 :(得分:1)

最好创建DTO。原因很简单,如果你返回实体,你可以从数据库中提取大量数据(取决于你的JPA注释 - @Lazy,@ Eager注释),如果你返回DTO,你总是可以只返回你需要的数据。

@JsonIgnore注释将始终从序列化中排除属性,但有时您需要该属性(对于某些特定请求)然后您遇到问题。这是DTO可以帮助您的简单情况,因为您可以根据需要创建所需的字段。