java - 我正在编写一个控制器来列出 Spring Boot Web Flux 中的员工 ID 和姓名。但是在列表控制器中也可以获取浮动值
问题描述
我已经使用 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"
}
公共类员工{
@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;
}
}
解决方案
你可以float
在Employee
课堂上使用原语。float 的默认值是0.0f
Use wrapper class for float,即Float
. Float
的默认值为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;
}
}
推荐阅读
- google-signin - 重新加载页面后获取当前用户
- javascript - 在 Js 中绘制画布不起作用,但在控制台中没有任何错误
- datetime - BigQuery:从带有时区的日期时间中提取日期
- nginx - Kubernetes 入口/NGINX 重写不匹配,而正则表达式似乎有效
- python - 如何并行读取多个 .xls 文件作为 DataFrames?
- tensorflow - 无法在 google colab 中加载图像以进行对象识别
- android - 如何解决 INSTALL_FAILED_MISSING_SHARED_LIBRARY 以运行 Android Things 应用程序开箱即用?
- sql-server - 改善可怕的 MERGE 性能
- regex - 如何在 RegEx 中对字符串的同一部分使用多个前瞻?
- javascript - 如何从Angular ngFor中的方法中提取值