[SPRING] 더 이상 사용되지 않는 javax.persistence.spi.PersistenceProvider가 발생했습니다.
SPRING더 이상 사용되지 않는 javax.persistence.spi.PersistenceProvider가 발생했습니다.
Spring & Hibernate를 사용할 때 다음과 같은 로그 경고를 만난 적이 있습니까?
어떻게 처리할까요? 어떤 답해 주셔서 감사합니다.
해결법
-
==============================
1.그것은해야한다
그것은해야한다
org.hibernate.jpa.HibernatePersistenceProvider
이것 좀 봐.
-
==============================
2.Spring Data JPA와 Java Configuration을 사용하고 있다면 Entity Manager Factory에 다음 코드를 추가하여이를 해결할 수 있습니다.
Spring Data JPA와 Java Configuration을 사용하고 있다면 Entity Manager Factory에 다음 코드를 추가하여이를 해결할 수 있습니다.
factory.setPersistenceProvider (새로운 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/
-
==============================
3.persistence.xml에 transaction-type = "RESOURCE_LOCAL"이라는 Spring 컨텍스트에서 JPA의 Entity Manager로 작업하는 동안이 문제가 발생했습니다.
persistence.xml에 transaction-type = "RESOURCE_LOCAL"이라는 Spring 컨텍스트에서 JPA의 Entity Manager로 작업하는 동안이 문제가 발생했습니다.
항상 버그는 아닙니다. 실제로 잘못된 공급자가 구성되었습니다.
persistence.xml에서 제공자를
<provider>org.hibernate.ejb.HibernatePersistence</provider>
에
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
그리고 그것은 잘 작동합니다.
패키지가 EJB에서 JPA로 변경되었습니다.
-
==============================
4.SPRING을 사용하지 않는 사용자의 경우 :
SPRING을 사용하지 않는 사용자의 경우 :
우리는 표준 javax.persistence 부트 스트랩을 Hibernate 특정 부트 스트랩으로 대체 할 수있다.
늙은:
EntityManagerFactory emf = Persistence.createEntityManagerFactory( PERSISTENCE_UNIT, props );
새로운:
PersistenceProvider provider = new HibernatePersistenceProvider(); EntityManagerFactory emf = provider.createEntityManagerFactory( PERSISTENCE_UNIT, props);
이제는 더 이상 사용되지 않는 경고가 없어야합니다. 문제는 여전히 4.3.1 최종판에있었습니다. 최종 5.1.0. 최종에서 그것은 고쳐 져야합니다.
-
==============================
5.org.hibernate.ejb.HibernatePersistence 클래스가 사용되지 않으므로이 메시지가 나타납니다. 내 persistence.xml 파일에서 제공자 클래스가 org.hibernate.ejb.HibernatePersistence를 가지고 있음을 발견했으며 stacktrace 경고 메시지에서 언급 한대로 org.hibernate.jpa.HibernatePersistenceProvider로 변경했습니다.
org.hibernate.ejb.HibernatePersistence 클래스가 사용되지 않으므로이 메시지가 나타납니다. 내 persistence.xml 파일에서 제공자 클래스가 org.hibernate.ejb.HibernatePersistence를 가지고 있음을 발견했으며 stacktrace 경고 메시지에서 언급 한대로 org.hibernate.jpa.HibernatePersistenceProvider로 변경했습니다.
persistence.xml
<persistence-unit name="personPersistenceUnit" transaction-type="RESOURCE_LOCAL"> <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> <class>Person</class> <properties> <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/db_name"/> <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLInnoDBDialect" /> .... </properties> </persistence-unit>
-
==============================
6.org.hibernate.ejb.HibernatePersistence를 persistence.xml의 org.hibernate.jpa.HibernatePersistenceProvider로 변경 한 후 또한 hibernate-entitymanager 의존성 버전을 변경하고 버그를 수정 한 5.2.10.Final의 마지막 버전을 얻으십시오. 여기있다 :
org.hibernate.ejb.HibernatePersistence를 persistence.xml의 org.hibernate.jpa.HibernatePersistenceProvider로 변경 한 후 또한 hibernate-entitymanager 의존성 버전을 변경하고 버그를 수정 한 5.2.10.Final의 마지막 버전을 얻으십시오. 여기있다 :
http://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager/5.2.10.Final
그것은 나를 위해 일했다.
-
==============================
7.나는 그 참조를 다음과 같이 바꿨다 :
나는 그 참조를 다음과 같이 바꿨다 :
org.hibernate.jpa.HibernatePersistenceProvider
그러나 그것은 작동하지 않았다.
그런 다음 Hibernate 4.x jar libs에 대한 모든 참조를 제거하고 마지막 버전 (5.2.7)을 다운로드 한 다음이 jar 파일을 추가하고 마침내 작동합니다.
from https://stackoverflow.com/questions/21693139/encountered-a-deprecated-javax-persistence-spi-persistenceprovider by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] Spring @Value 주석은 항상 null로 평가됩니까? (0) | 2019.01.16 |
---|---|
[SPRING] JAR의 PathMatchingResourcePatternResolver 및 URLClassloader를 사용하여 리소스 찾기 (0) | 2019.01.16 |
[SPRING] Spring 문맥에 모의 삽입하기 [duplicate] (0) | 2019.01.15 |
[SPRING] 단계 정의 파일간에 동일한 셀레늄 WebDriver 공유 (0) | 2019.01.15 |
[SPRING] SPRING 서버에서 JAVA NIO 프레임 워크 사용 (0) | 2019.01.15 |