2013-03-24 2 views
16

현재 javax.persistence 패키지의 EntityManager EntityManagerFacotry 및 Persistence가 필요한 프로젝트에서 작업하고 있습니다. 그것은 데이터베이스 서비스에 대한 것으로 보이지만 현재 코드는 잘 설명되어 있지 않습니다. Google 검색을 통해이 함께 제공되는 XML 파일이 있어야하지만 그 중 하나도없는 것으로 보입니다. 제 질문은 간단히 어떻게 이러한 미해결 된 수입을 없애는 것입니까? 빌드 경로에 다른 jar 파일을 추가해야합니까? 그것은 1.5 이후 주변에 있었던 이래로해서는 안되는 것 같습니다.import javax.persistence를 확인할 수 없습니다.

도움을 주시면 대단히 감사하겠습니다.

+4

실제로 JPA API가있는 jar 파일이 필요합니다. 그러나 더 중요한 것은 이러한 JPA 인터페이스 (Hibernate, EclipseLink, OPenJPA 등)의 구현이 필요하다는 것입니다. 솔직히 JPA가 무엇인지 모르고 JPA를 사용하려고 시도하고 어떤 구현을 선택했는지는 재앙에 대한 확실한 길입니다. 코드를 상속받는 경우 최소한 빌드 프로세스가 있어야합니다. –

+1

음 ... 글쎄요. – Matt

+0

흥미로운 @JB Nizet, 내 Google App Engine 통합에서 문제가 발생하고 단계별 지침에 따라 방법이 오래되었습니다. 통합 모듈은 번들로 제공되어 Android 앱이 세부 사항을 다룰 필요가 없습니다. JPA에 대한 언급이 없으며 MAVEN이 모든 종속 SDK 파일 등을 다운로드하고 포함한다는 언급이 있습니다. – mobibob

답변

17

hibernate-distribution-3.6.10.Final \ lib \ jpa : 문제를 해결하려면이 항아리를 추가하십시오. lib 폴더에 lib 폴더에 jpa ---라는 폴더가 있습니다. 내부에 hibernate-jpa-2.0-1.0.1이 있습니다. 최종 항아리

11

예, 다른 jar 파일을 추가해야 할 수도 있습니다. 종속성

javax.persistence.*은 Java 지속성 API (JPA)의 일부입니다. API 일 뿐이므로 인터페이스와 비슷한 것으로 생각할 수 있습니다. JPA에는 많은 구현이 있으며,이 answer은 각각의 사용법뿐만 아니라 각각의 매우 정교함을 제공합니다.

javax.persistence.* 가져 오기를 해결할 수없는 경우 JPA를 구현하는 jar를 제공해야합니다. 수동으로 다운로드하여 프로젝트에 추가하거나 종속성 관리 도구 (예 : Ivy/Maven/Gradle)에 선언을 추가하여이 작업을 수행 할 수 있습니다. Maven 레포에서 EclipseLink 구현 (참조 구현)에 대해서는 here을 참조하십시오.

그런 후 가져 오기를 해결해야합니다.

JPA에 대해서는 here도 참조하십시오. 당신이 말하는 xml은 persistence.xml 일 수 있습니다. 링크는 3 페이지에 설명되어 있습니다. 말했다되고 그건

, 당신은 단지 잘못된 대상 런타임을 가리키는 될 수

내가 올바르게 기억, 당신은 당신이 같은 JavaEE 어플 응용 프로그램 서버에이를 배포하는 경우 JPA 구현을 제공 할 필요가 없습니다 JBoss. here 참고 "Java EE 6 응용 프로그램 서버 (예 : JBoss AS 6)에 응용 프로그램을 배포 할 때 일반적으로 응용 프로그램을 필요로하지 않습니다." 프로젝트의 목표 런타임을 변경하십시오.

원격 프로젝트가 JavaEE 서버를 사용하는 동안 로컬 프로젝트가 Tomcat을 가리 키도록 설정 되었다면이 경우 일 수 있습니다. Tomcat과 JBoss의 차이점은 here을 참조하십시오.

편집 : 프로젝트가 Tomcat 대신 GlassFish를 가리키고 javax.persistence.*이 명시 적 JPA 종속성없이 정상적으로 해결되었습니다.

+3

이것은 IMHO에 훨씬 더 나은 대답입니다. –

1

내 솔루션은 최대 절전 모드 종속성을 선언 한 pom.xml에서 정의한 maven 프로파일을 선택하는 것이 었습니다.

CTRL + ALT + P 이클립스.

내 pom에서 글래스 피쉬 3, 글래스 피쉬 4 및 와일드 플리 (WildFly)를 지원하는 프로필이 다르므로이 문제와 다른 많은 문제가 발생했습니다. 컨테이너 당 최대 절전 모드 버전과 다른 Java 컴파일 대상 및 곧. 활성 Maven 프로파일을 선택하면 내 문제가 해결되었습니다.

0

Maven/Gradle을 사용하지 않고 JPA 구현으로 Hibernate를 사용하는 경우 jar 파일 대신 하나의 전체 번들을 다운로드하는 것이 더 쉬운 방법입니다.

http://hibernate.org/orm/downloads/으로 이동하고 최신 라이브러리를 다운로드하려면 required 폴더에서 병을 추출하십시오.

1

누군가 Maven을 사용하는 경우 POM.XML 파일에 종속성을 추가해야합니다. 이 게시물의 등의 최신 버전은 다음과 같습니다 :

새로운 최대 절전 항아리에서
<dependency> 
    <groupId>org.hibernate.javax.persistence</groupId> 
    <artifactId>hibernate-jpa-2.1-api</artifactId> 
    <version>1.0.0.Final</version> 
</dependency> 
0

, 당신은 hibernate-search-5.8.0.Final \의 DIST \ lib 디렉토리 \ 제공 \ 최대 절전 모드에서 JPA "에서 필요한 JPA 파일을 찾을 수 있습니다 -2.1-api-1.0.0. 최종 ". 이 jar 파일을 프로젝트 java 빌드 경로에 추가해야합니다. 이것은 아마도 문제를 해결할 것입니다.

관련 문제