我正在编写一个控制器来在 spring boot web flux 中列出员工 ID 和姓名。但是在列表控制器中也获取浮动值

I am writing a controller to list the employee id and name in spring boot web flux. But getting the floating values as well in the list controller

我已经使用 JDBC 模板从数据库中检索详细信息,并且我在数据库中有一个浮点值为 0.0 的字段。我只期待这个获取请求的员工姓名和 ID,但不确定为什么我也在控制器中得到这个浮点值。

请帮我解决这个问题。谢谢!

 public Flux<Emplotee> getAllEmployeeIdsAndName() {

        List<Employee> allEmployee = jdbcTemplate.query(Queries.GET_ALL_EMPLOYEE_IDS_NAME, new RowMapper<Employee>() {
            @Override
            public Employee mapRow(ResultSet resultSet, int i) throws SQLException {
                Employee employee = new Employee();
                employee.setId(resultSet.getString("employee_id"));
                employee.setName(resultSet.getString("employee_name"));
                return employee;
            }
        });
        return Flux.fromIterable(allEmployee);
    }

使用的查询:

        private static final String GET_ALL_EMPLOYEE_IDS_NAME = "select  employee_id , employee_name from employee";

我想从列表中排除这个分数值。

 {
        "score": 0.0,
        "employee_name": "John doe",
        "employee_id": "97e3-f566c43cac3e"
    }

public class 员工 {

   @JsonProperty("id")
   private String employee_id;
   private String employee_name;
   private float score;
   public String getId() {
      return id;
    }
   public void setEmployeeId(String employee_id) {  
      this.id = id;  
    }
   public String getName() { 
      return name; 
    } 
   public void setEmployeeName(String employeeName) { 
    this.name = name; 
    } 
   public float getScore() {
     return score; 
      }
   public void setScore(float score) { 
       this.score = score;
     }

}

您可以在 Employee class 中使用原语 float。浮点数的默认值为 0.0f 使用包装器 class 作为浮点数,即 FloatFloat 的默认值为 null。所以你会得到

的回应
   {
        "score": null,
        "employee_name": "John doe",
        "employee_id": "97e3-f566c43cac3e"
    }

注: 如果真的要忽略属性,那么可以使用@JsonIgnore注解。@JsonIgnore用于忽略逻辑上的属性用于序列化和反序列化。 @JsonIgnore可用于setter、getter或字段。

public class Employee {
    @JsonProperty("id")
    private String id;
    private String name;

    @JsonIgnore
    private Float score;
    public String getId() {
        return id;
    }
    public void setEmployeeId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setEmployeeName(String name) {
        this.name = name;
    }
    public Float getScore() {
        return score;
    }
    public void setScore(Float score) {
        this.score = score;
    }
}