如何将HashMap添加到Employee类的List



我创建了一个Java类,并使用JPA来检索Employee类的详细信息,该类返回员工列表,如

[
{
"empId": "1",
"empName": "emp1",
"empTag": "empTag1",
"empState": "ACTIVE"
},
{
"empId": "2",
"empName": "emp2",
"empTag": "empTag2",
"empState": "ACTIVE"
}
]

收到哈希列表后,我想添加一些虚拟条目,如

[
{
"empId": "00",
"empName": "DummyEmp",
"empTag": "DummyEmpTag",
"empState": "ACTIVE"
},
{
"empId": "1",
"empName": "emp1",
"empTag": "empTag1",
"empState": "ACTIVE"
},
{
"empId": "2",
"empName": "emp2",
"empTag": "empTag2",
"empState": "ACTIVE"
}
]

所以我试图将map添加到employee列表中但在运行时我得到

java.lang.ClassCastException: java.util.HashMap$KeySet cannot be cast to com.domain.EmployeeBean 

My Employee Class:

@Table(name = "employee")
@Entity
public class EmployeeBean implements Serializable {
private static final long serialVersionUID = 1L;
@Id @Column(name = "emp_id") 
private String empId;

@Column(name = "emp_name") 
private String empName;

@Column(name = "emp_tag") 
private String empTag;

@Column(name = "emp_state") 
private String empState;
.... (getters and setters) 
}

存储库:

public interface EmployeeBeanRepository extends JpaRepository<EmployeeBean, String>{
List < EmployeeBean > findByEmpState(String empState);

资源:

@RestController
@RequestMapping("/empDetails")
public class EmployeeBeanResource {

private final EmployeeBeanRepository empBeanRepository;

public EmployeeBeanResource(EmployeeBeanRepository empBeanRepository) {
this.empBeanRepository = empBeanRepository;
}

@GetMapping("/empState/{empState}")
@Timed
public List<EmployeeBean> getEmployeesByStatus(@PathVariable String empState) {
List<EmployeeBean> activeEmployeeList = empBeanRepository.findByEmpState(empState);

Map<String, String> empDummy = new HashMap<>();

empDummy.put("empId", "00");
empDummy.put("empName", "DummyEmp");
empDummy.put("empTag", "DummyEmpTag");
empDummy.put("empState", "ACTIVE");

activeEmployeeList.add((EmployeeBean) empDummy.keySet());
activeEmployeeList.add((EmployeeBean) empDummy.values());

return activeEmployeeList;
}
}

我已经尝试了很多,但仍然无法找出一种方法来添加映射到员工列表。

而不是:

Map<String, String> empDummy = new HashMap<>();

empDummy.put("empId", "00");
empDummy.put("empName", "DummyEmp");
empDummy.put("empTag", "DummyEmpTag");
empDummy.put("empState", "ACTIVE");

activeEmployeeList.add((EmployeeBean) empDummy.keySet());

尝试如下:

EmployeeBean empDummy = new EmployeeBean();

empDummy.setEmpId("00");
empDummy.setEmpName("DummyEmp");
empDummy.setEmpTag("DummyEmpTag");
empDummy.setEmpState("ACTIVE");

activeEmployeeList.add(empDummy);

或者如果你有所有参数的构造函数:

EmployeeBean empDummy = new EmployeeBean("00", "DummyEmp","DummyEmpTag","ACTIVE");
activeEmployeeList.add(empDummy);

最新更新