Я разрабатываю общий c API для извлечения данных на основе имени объекта и его первичного ключа. URL-адрес для получения сопоставления: api/fetch/{id}/data/{entity}
Существует много сущностей, таких как студент, курс, преподаватель, класс ... На основе имени сущности API должен возвращать данные для этой сущности по заданному идентификатору в URL-адресе. Каким должен быть лучший подход с использованием весенней загрузки и JPA? Попытка выполнить ниже, но не может работать, когда количество сущностей велико и продолжает расти. Нужен общий подход c.
@RestController
public class Datacontroller{
@Autowired
CourseRepo courserepo;
@Autowired
Studentrepo studentrepo;
@GetMapping("api/fetch/{id}/data/{entity}")
public <T> T getData(@PathVariable("id") String id, @PathVariable("entity") String entity) {
T l = null;
//depending on entity
if("course".equals(entity)) {
Optional<Course> c = courserepo.findById(id);
l=(T) c.get();
}
if("student".equals(entity)) {
Optional<Student> a = studentrepo.findById(id);
l = (T) a.get();
}
return l;
}