微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

创建不同的pojo对象并保留在db中的通用方法

如何解决创建不同的pojo对象并保留在db中的通用方法

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

这是我的代码

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

您可以像使用它一样

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。