创建不同的 pojo 对象并保存在数据库中的通用方法

Generic way to create different pojo objects and persist in db

我正在创建一个使用 spring 数据 jpa 进行持久化的项目。我收到一个 json 字符串作为输入,我将其转换为相应的 pojo 以保存到数据库中。目前我正在使用 if else 来确定 pojo 和相应的存储库。有没有一种方法可以通用地处理这个问题,而不是使用 if else。 请帮忙。提前致谢。

这是我的代码:

                    if(designation.equals("Teacher"))
                    {
                        Teacher teacher= mapper.readValue(jsonString,Teacher.class);
                        teacherRepository.save(teacher);
                    }
                    else  if(designation.equals("Student"))
                    {
                        Student student= mapper.readValue(jsonString,Student.class);
                        studentRepository.save(student);
                    }
                    else  if(designation.equals("Staff"))
                    {
                        Staff staff= mapper.readValue(jsonString,Staff.class);
                        staffRepository.save(staff);
                    }
               

如果您有使用不同存储库的资源,也许您应该有不同的 REST 端点(或您正在使用的任何东西)和服务 类 正确。

摆脱 if-else 块的一种简单方法是使用 Map

Map<String, Consumer<?>> map = new HashMap<>();
 map.put("Teacher", (e) -> teacherRepository.save(mapper.readValue(e,Teacher.class))
});

你可以像这样使用它,

map.get("Teacher").accept(jsonString);