提问者:小点点

遇到不推荐使用的javax . persistence . SPI . persistence provider


当你使用Spring时

警告o.hibernate.ejb.HHibernatePersistence-HHHH015016:遇到不推荐的javax.persistence.spi.PersistenceProvider[org.hibernate.exb.HibernatePersistence];请改用[org.hibernate.jpa.HHibernate PersistenceProvider]。

如何处理?谢谢你的回答。


共3个答案

匿名用户

应该是

org.hibernate.jpa.HibernatePersistenceProvider

看看这个。

已弃用。

改用Hibernate PersistenceProvider

匿名用户

如果您正在使用 Spring Data JPA 和 Java 配置,您将能够解决它,在您的实体管理器工厂中添加以下代码:

factory . setpersistenceprovider(new HibernatePersistenceProvider());

@Bean
    public EntityManagerFactory entityManagerFactory() throws SQLException {

      HibernateJpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
      vendorAdapter.setGenerateDdl(true);
      vendorAdapter.setShowSql(true);

      LocalContainerEntityManagerFactoryBean factory = new LocalContainerEntityManagerFactoryBean();
      factory.setJpaVendorAdapter(vendorAdapter);
      **factory.setPersistenceProvider(new HibernatePersistenceProvider());**
      factory.setPackagesToScan("com.company.appname.persistence.domain");
      factory.setDataSource(dataSource());

      factory.setJpaProperties(hibernateProperties());
      factory.afterPropertiesSet();

      return factory.getObject();
    }

你可以在这里找到一个使用 Spring Data JPA 进行 Hibernate 配置的很好的例子:http://spring.io/guides/tutorials/data/3/

匿名用户

对于不使用SPRING的用户:

我们可以用特定于Hibernate的标准javax.persistence无融资创业。

旧的:

EntityManagerFactory emf = Persistence.createEntityManagerFactory(
    PERSISTENCE_UNIT, props );

新:

PersistenceProvider provider = new HibernatePersistenceProvider();
EntityManagerFactory emf = provider.createEntityManagerFactory(
   PERSISTENCE_UNIT, props);

已弃用的警告现在应该消失了。问题仍然存在于4.3.1。最终。在5.1.0。最终应该得到修复。