如何解决创建不同的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 举报,一经查实,本站将立刻删除。