Программно загружающиеся классы Объекта с JPA 2.0?

С В спящем режиме, можно загрузить Ваш Entity классы как:

sessionFactory = new AnnotationConfiguration()
                    .addPackage("test.animals")
                    .addAnnotatedClass(Flight.class)
                    .addAnnotatedClass(Sky.class)
                    .addAnnotatedClass(Person.class)
                    .addAnnotatedClass(Dog.class);

Существует ли способ сделать то же самое - программно загрузку Ваших классов Объекта - в JPA 2.0 совместимый путь?

Причина этого вопроса состоит в том, потому что я хотел бы динамично загрузить мой Entity классы, таким образом не обязательно программно.

22
задан Rob Hruska 5 May 2012 в 15:27
поделиться

2 ответа

Я не думаю, что есть такая опция - JPA поддерживает сканирование пути к классам на наличие сущностей или явное перечисление классов сущностей в сохраняемости.xml. Поскольку вы используете hibernate в качестве поставщика сохраняемости, вы всегда можете прибегнуть к коду гибернации. Взгляните на классы HibernateEntityManager и HibernateEntityManagerFactory. Вы можете привести к ним фабрики менеджеров сущностей и менеджеров сущностей и сделать обычные вещи в спячке.

3
ответ дан 29 November 2019 в 05:03
поделиться

Есть ли способ сделать то же самое - программно загрузить ваши классы Entity - совместимым с JPA 2.0 способом?

Нет, это не поддерживается JPA, поэтому вам придется делать это в зависимости от поставщика.Джеймс Сазерленд описал процесс для EclipseLink в этой ветке следующим образом:

Вы можете получить доступ к EclipseLink ServerSession из EntityManagerFactoryImpl ( getServerSession () ) и используйте его ' addDescriptor (ClassDescriptor) или addDescriptors () API, чтобы добавить EclipseLink ClassDescriptor . Вам нужно будет построить объекты метаданных ClassDescriptor непосредственно самостоятельно (или использовать Mapping Workbench для их создания), поскольку загрузка из аннотаций JPA или orm.xml будет более сложной.

Также посмотрите этот более свежий поток , чтобы увидеть больше примеров кода (API выглядит немного подробным).

Ссылки

5
ответ дан 29 November 2019 в 05:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: