2010-06-09 63 views
6

Eclipselink documentation說,我需要以下條目在我的pom.xml與Maven得到它:如何使用JPA設置Eclipselink?

<dependencies> 
    <dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>eclipselink</artifactId> 
    <version>2.0.0</version> 
    <scope>compile</scope> 
     ... 
    </dependency> 
<dependencies> 
     ... 
<repositories> 
    <repository> 
    <id>EclipseLink Repo</id> 
    <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo</url> 
    </repository>  
     ... 
</repositories> 

但是當我嘗試使用@Entity註釋的NetBeans告訴我,那類不能被發現。實際上:Eclipselink的javax.persistence包中沒有Entity類。

如何用Maven設置Eclipselink?

回答

13

eclipselink神器不提供JPA 2.0 API,你需要添加javax.persistence

<repositories> 
    <repository> 
    <id>eclipselink</id> 
    <url>http://www.eclipse.org/downloads/download.php?r=1&amp;nf=1&amp;file=/rt/eclipselink/maven.repo/</url> 
    </repository> 
</repositories> 
<dependencies> 
    <dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>eclipselink</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope><!-- since I'm running inside a Java EE container --> 
    </dependency> 
    <dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope><!-- since I'm running inside a Java EE container --> 
    </dependency> 
    ... 

我建議使用非OSGI的EclipseLink罐子簡單起見。

+0

我已經嘗試添加依賴項javax.persistence,但在NetBeans中有一個錯誤,告訴我沒有'Entity'類。如果我把同一個類轉換成Java,一切都很好。你的帖子把我帶到了正確的地方。 – deamon 2010-06-09 21:58:02

0

你可以嘗試添加

<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>compile</scope> 
</dependency> 
2

當我看着我的本地倉庫,org.eclipse.persistence:的EclipseLink確實含有持久性API,至少對於的EclipseLink版本2.0.0-SNAPSHOT 。

但在eclipselink存儲庫中還有一些依賴關係更加模塊化。這是我使用的當前項目的依賴關係:

<!-- persistence api --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope> 
</dependency> 
<!-- jpa implementation --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>org.eclipse.persistence.jpa</artifactId> 
    <version>2.0.2</version> 
    <scope>provided</scope> 
</dependency> 

注意範圍設置爲提供,因爲我部署到Glassfish的已經包含的EclipseLink。

4

只需將以下內容添加到您的pom.xml

現在這些artifats都在Maven倉庫,所以無需添加任何<repository>

<!-- JPA --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>eclipselink</artifactId> 
    <version>2.5.1</version> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
</dependency> 



或者,如果您使用的是Java EE應用服務器使用org.eclipse.persistence.jpa:org.eclipse.persistence,因爲它不包括依賴條件是已經在服務器上。

<!-- JPA for Java EE application servers --> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>org.eclipse.persistence.jpa</artifactId> 
    <version>2.5.1</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>org.eclipse.persistence</groupId> 
    <artifactId>javax.persistence</artifactId> 
    <version>2.0.0</version> 
    <scope>provided</scope> 
</dependency> 
+0

你有參考嗎? – 2014-06-25 13:15:28

相關問題