У меня есть два параметра на входе моего метода: className (String) и objectId (сериализуемый) .
Возможно ли:
- Динамически создать объект определенного класса (из входного параметра
String className
) - Получить экземпляр объекта по идентификатору (из входного параметра
Serializable objectId
) с использованием соответствующего репозитория JPA этого класса (например: Repository.getById(objectId)
; методы GetById будут одинаковыми для всех репозиториев. - Для любого из полученных объектов вызовите один и тот же метод ( например, getUnit () )
Принимая, я должен сделать следующее:
Для №1 Я могу сделать: Object obj = Class.forName(className);
Для №3 Я могу создать соответствующий интерфейс (например, DevidedByUnit и привести к нему полученный объект, а затем вызвать один и тот же метод для всех объектов
Unit unit = (DevidedByUnit)obj.getUnit();
Но что я могу сделать для №2 ? Есть ли способ динамического вызова JPA хранилище в зависимости от класса? Делать @ Autowire вручную для всех моих 30 сущностей было бы безумием.