Динамически создать класс и получить его экземпляр по идентификатору из репозитория JPA - PullRequest
0 голосов
/ 20 апреля 2020

У меня есть два параметра на входе моего метода: className (String) и objectId (сериализуемый) .

Возможно ли:

  1. Динамически создать объект определенного класса (из входного параметра String className)
  2. Получить экземпляр объекта по идентификатору (из входного параметра Serializable objectId) с использованием соответствующего репозитория JPA этого класса (например: Repository.getById(objectId); методы GetById будут одинаковыми для всех репозиториев.
  3. Для любого из полученных объектов вызовите один и тот же метод ( например, getUnit () )

Принимая, я должен сделать следующее:

Для №1 Я могу сделать: Object obj = Class.forName(className);

Для №3 Я могу создать соответствующий интерфейс (например, DevidedByUnit и привести к нему полученный объект, а затем вызвать один и тот же метод для всех объектов

Unit unit = (DevidedByUnit)obj.getUnit();

Но что я могу сделать для №2 ? Есть ли способ динамического вызова JPA хранилище в зависимости от класса? Делать @ Autowire вручную для всех моих 30 сущностей было бы безумием.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...