Я планирую создать приложение с загрузочной пружиной (версия 2) в hibernate 5.3, но у меня возникают проблемы при интеграции hibernate 5.
Поскольку это весеннее загрузочное приложение, контейнер будет автоматически настраивать источник данных и вариант JPA EntityManagerFactory, и мы можем создать Hibernate SessionFactory из этого EntityManagerFactory, используя метод unwrap ().
Итак, это мой код для класса конфигурации Hibernate
@Configuration
public class HibernateUtil {
@Autowired
private EntityManagerFactory entityMangerFact;
@Bean
public SessionFactory sessionFactory() {
return entityMangerFact.unwrap(SessionFactory.class);
}
}
Но это thowing BeanCurrentlyInCreationException .
Но если я добавлю unwrap () в метод класса обслуживания, он не будет генерировать исключения. Но я думаю, что это неправильно, так как у нас будет больше методов обслуживания, и нам, возможно, придется вызывать unwrap () для каждого метода обслуживания.
Журнал ошибок:
Caused by: org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'sessionFactory': Requested bean is currently in creation: Is there an unresolvable circular reference?
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.beforeSingletonCreation(DefaultSingletonBeanRegistry.java:339) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:215) ~[spring-beans-5.1.4.RELEASE.jar:5.1.4.RELEASE]
Почему unwrap () не работает в классе конфигурации?