我使用 JDBC 模板从数据库中检索详细信息,并且数据库中有一个浮点值为 0.0 的字段。我期望只有员工姓名和 ID 与此获取请求,但不确定为什么我也在 Controller 中获取此浮点值。
请帮我解决这个问题。谢谢!
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)类员工{
@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
类中使用原始float
。 float 的默认值为0.0f
使用 float 的包装类,即 Float
。 Float
的默认值为 null
。所以你会得到如下响应
{
"score": null,
"employee_name": "John doe",
"employee_id": "97e3-f566c43cac3e"
}
注意:
如果你确实想忽略该属性,那么你可以使用@JsonIgnore
注解。@JsonIgnore
用于忽略序列化中使用的逻辑属性和反序列化。 @JsonIgnore
可用于 setter、getter 或 field。
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;
}
}
关于java - 我正在编写一个 Controller 来列出 Spring Boot Web Flux 中的员工 ID 和姓名。但也在列表 Controller 中获取 float 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59419893/