从对象

时间:2017-01-09 05:23:36

标签: java hibernate spring-boot

我有一个从db调用下面返回的列表。

List<employee> list = empolyeeRepository.findByEmployeeId(id);

列表包含员工pojo类对象。我想删除一个属性,让我们说&#34;员工银行帐户号码&#34;从休息时回来。

@RequestMapping(value = "/employeeInformation/{id}",
     method = RequestMethod.GET,
     produces = MediaType.APPLICATION_JSON_VALUE)
@Timed
public List<Employee> getEmployeeInformation(@PathVariable("id") String id) throws Exception {
            return empolyeeRepository.findByEmployeeId(id);
        }

是否有任何注释或良好做法?

2 个答案:

答案 0 :(得分:4)

正如上面的评论中提到的,您无法在运行时删除已编译类的字段。假设您必须从生成的json中排除某些字段,我会看到两个选项:

  1. 创建一个类,其中包含要在结果json中出现的字段,将所需的值从原始对象复制到新创建的对象。这种方法称为视图模型,允许您装饰某些对象的数据,从而隐藏敏感数据。
  2. 根据序列化程序的实现,可能会有注释来排除字段。如果您使用的是Jackson(默认情况下为spring boot),则可以将@JsonIgnore置于getter方法上。第二个方法需要大量的代码,但第一个方法更灵活。

答案 1 :(得分:1)

尝试@JsonIgnore忽略序列化和反序列化的属性。 以下是文档的link