java - 从对象中删除属性

标签 java hibernate spring-boot

我得到了一个从下面的数据库调用返回的列表。

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

List 包含employee pojo 类对象。从休息电话返回时,我想删除一个属性,比方说“员工银行账户号”。

@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);
}

是否有任何注释或良好做法可以做到这一点?

最佳答案

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

  1. 创建一个类,其中包含您希望出现在生成的 json 中的字段,将所需值从原始对象复制到新创建的对象中。这种方法称为 View 模型,允许您修饰某些对象的数据,隐藏敏感数据以免暴露。
  2. 根据序列化器的实现,可能会有注释来排除字段。 @JsonIgnore 可以放在 getter 方法上,如果你使用的是 Jackson(在 spring boot 中默认)。第二种方法需要的代码少得多,但第一种方法更灵活。

关于java - 从对象中删除属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41541488/

相关文章:

java - 用于本地 Spring Boot 开发的 Docker-Compose

java - "An error occurred while automatically activating bundle com.android.ide.eclipse.adt"

java - 错误: Could not find or load main class [zookeeper-book-example]

hibernate.cfg.xml 未解析

java - Hibernate.initialize() 如何工作

java - 我面临 "java.lang.IllegalArgumentException: Can not set int field com.example.demo.model.Customer.customerId to java.util.LinkedHashMap"

java - Hadoop - 作业统计

java - Jersey 2.x 和 Tomcat8 返回 NullPointerException,HTTP 状态 500

java - 如何实现对简单对象集合的排序?

java - 向 Eureka 休息服务端点发送多部分文件请求时出现异常