如何在 entityManagerFactory 中注入 Hibernate 拦截器类



我想在我的实体管理器工厂类中注入休眠拦截器类。但是我找不到任何可以注入休眠Intercpetor类引用的属性。

实体管理器工厂 Bean:

<bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter" ref="hibernateJpaVendorAdapter" />
        <property name="packagesToScan" value="com.XXXXX.entity" />
        <property name="jpaProperties">
    </bean>
<!-- Datasource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
        destroy-method="close">
        <property name="driverClass" value="${jdbc.driver.classname}" />
        <property name="jdbcUrl" value="${jdbc.url}" />
    </bean>
<!-- MyInterceptor bean -->
<bean id="interceptor"  class="com.XXXX.interceptor.AuditInterceptor" "/>
<!-- transaction Manager -->
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory" />
    </bean>

我想了解如何在实体管理器工厂 bean 中注入我的拦截器豆引用???

我们不能注入休眠 Intercpetor 类引用实体管理器工厂类。我们可以使用替代方法或解决方法:我们可以从 EntityManagerFactory bean 获取 entityManager 引用。

EntityManagerFactory entityManagerFactory;
  private static EntityManager entityManager;
  @Autowired
  public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory)
  {
    entityManager = entityManagerFactory.createEntityManager();
    this.entityManagerFactory = entityManagerFactory;
  }
  public Session getCurrentSession()
  {
    return entityManager.unwrap(org.hibernate.Session.class);
  }

最新更新