Получить конфигурацию Hibernate весной - PullRequest
2 голосов
/ 02 октября 2010

Мой проект использует Spring, JPA и Hibernate, так что все EntityManager внедряются Spring.

Мне нужен доступ к метаданным постоянных классов, таким как длина столбцов и необязательность.Единственный известный мне способ получения этой информации - через Configuration.getClassMapping в Hibernate (String className).В чистом проекте Hibernate без JPA и Spring вы можете сохранить конфигурацию после создания SessionFactory (т. Е. Новой Configuration (). Configure (). BuildSessionFactory ()), но поскольку Spring использует LocalEntityManagerFactoryBean для создания SessionFactory в форме EntityManagerFactory,Я не уверен, где взять конфигурацию.

Если невозможно получить конфигурацию из Spring, есть ли другой способ доступа к метаданным постоянного класса?

Спасибо.

Ответы [ 2 ]

3 голосов
/ 03 октября 2010

Оказывается, это невозможно. Spring создает EntityManagerFactory стандартным способом, используя реализацию PersistenceProvider, указанную в файле persistence.xml. HibernatePersistence, являющееся реализацией Hibernate для PersistenceProvider, не сохраняет объект Configuration после использования. Чтобы предоставить доступ к этой конфигурации, вам нужно самостоятельно реализовать PersistenceProvider, что, в любом случае, не имеет большого значения.

2 голосов
/ 02 октября 2010

Я не использовал JPA и пружину, а только зимовал непосредственно с пружиной. Но я думаю, что архитектура похожа. При непосредственном использовании hibernate вместо LocalEntityManagerFactoryBean .

используется LocalSessionFactoryBean .

Способ доступа к конфигурации гибернации описан в этой теме на форуме Spring . Возможно, вы сможете адаптировать этот подход для работы и с LocalEntityManagerFactoryBean.

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