【发布时间】:2017-12-26 12:41:08
【问题描述】:
我有 JPA Employee 持久实体 wjich 有 50 个字段。有时我需要向 UI 显示所有 50 个字段,或者有时比这要少得多。
我能想到两种方法
方法一:-
我将继续将 Employee 实体返回给 UI。有一些方法(带注释)我可以提到Employee下的哪些特定字段需要返回
示例:-
如果我想在将 json 返回到浏览器之前忽略 Employee 类中的 MiddleName,我将创建 EmployeeMixin 和所需的 @JsonIgnoreProperties,如下所示
@JsonIgnoreProperties({"MiddleName"})
public abstract class EmployeeMixin extends Employee{
}
Employee employee = new Employee ();
Map<Class<?>, Class<?>> mixinMap = new HashMap<Class<?>, Class<?>>();
mixinMap.put(Employee.class, EmployeeMixin.class);
ObjectMapper mapper = new ObjectMapper(mixinMap);
return mapper.writeValueAsString(employee);
方法2:-
我将再次创建包含所有 5o 字段的新 POJO 并返回 UI。
我的问题是哪种设计方法更好?我应该将 Entity 对象还是新的 Pojo 对象(由 Entity 构造)返回给 UI ?
【问题讨论】:
-
就我而言,方法 1 很好。因为创建具有相同字段的新 pojo 意义不大。所以使用方法 1 并使用注释仅返回必填字段。