I have this code used in org.hibernate:hibernate-entitymanager:5.6.15.Final
import org.hibernate.jpa.HibernateEntityManagerFactory;
@Component
public class ProtectedBeanPostProcessor implements BeanPostProcessor {
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof EntityManagerFactory) {
HibernateEntityManagerFactory hibernateEntityManagerFactory = (HibernateEntityManagerFactory) bean;
SessionFactoryImpl sf = (SessionFactoryImpl) hibernateEntityManagerFactory.getSessionFactory();
EventListenerRegistry obj = sf.getServiceRegistry().getService(EventListenerRegistry.class);
obj.appendListeners(EventType.PRE_LOAD, systemListener);
obj.appendListeners(EventType.PRE_INSERT, systemListener);
obj.appendListeners(EventType.PRE_UPDATE, systemListener);
obj.appendListeners(EventType.PRE_DELETE, systemListener);
}
return bean;
}
When I update the code to latest Spring Boot 3 I get error:
Cannot resolve symbol 'HibernateEntityManagerFactory'
Cannot resolve method 'getSessionFactory()'
Do you want how I can migrate the code to latest Hibernate version?