Troubleshooting - JsonMappingException: Already had POJO for id

The ProblemWe have two entities with one-to-many relationships which references each other, but it failed with the exception:com.fasterxml.jackson.databind.JsonMappingException: Already had POJO for idThe FixTo easily troubleshoot the issue, I created a sample class like below:

This reproduces the issue, and from the output:new department: {"departmentId":"e3e0e676-0c52-493d-8f49-bedde05cbb11","name":"newD1","employees":[{"employeeId":"6b7bbbec-8be6-4423-a4ef-af7924df177b","name":"e1","department":{"departmentId":"e3e0e676-0c52-493d-8f49-bedde05cbb11","name":"oldD1","employees":["6b7bbbec-8be6-4423-a4ef-af7924df177b"]}}]}

I found that after I changed the department to newD1, the employee still refers to old department object with department name: oldD1.

This leads to my fix like below: after I made change to the department object, make sure the employees refers to the new department object.

// without the following statements: it will throw
// com.fasterxml.jackson.databind.JsonMappingException: Already had POJO for id
for (Employee e : oldD1.getEmployees()) {
e.setDepartment(newD1);
}