2013-03-14 44 views
0

我使用的是IntelliJ IDea 12 Ultimate,我创建了一个Maven项目。 然后我创建了一个类,并试图将@Entity注释添加到它。 现在,我没有像选择非maven项目那样选择本地包,intellij的想法开始要求我将一些远程依赖项导入到pom.xml中。 我如何知道选择哪个包? 例如,当我有一个非maven项目时,我选择了javax.persistence包来使用,并且ide基于基础JDK添加了正确的导入。 现在,如果我去http://mvnrepository.com/并搜索javax.persistence,那么我会得到这个页面(http://mvnrepository.com/artifact/javax.persistence/persistence-api),我有四种不同的选择(1.0-rev-1,1.0.2,1.0,1.0b)。 我怎么知道我的JDK使用哪个版本,所以我可以选择适当的Maven依赖关系? 谢谢。如何选择正确的包在maven项目中导入?

PS:这是当我搜索神器ID什么的IntelliJ选择(它似乎只选择最新的版本,独立包装者的):

<dependency> 
      <groupId>org.hibernate.javax.persistence</groupId> 
      <artifactId>hibernate-jpa-2.0-api</artifactId> 
      <version>1.0.1.Final</version> 
</dependency> 

回答

1

如果你的项目需要外部的依赖,这意味着它们不包含在您的JDK中,所以当您询问我的JDK使用哪个版本时,它并不真正相关。我会说,“最新的是最伟大的” :)

如果你想使用JPA 2,看到这个线程:Where can I find a JPA2 Maven dependency?

您需要javax.persistence和JPA的实施另一依赖(Hibernate中,排名靠前,OpenJPA等)

+0

如果我弄明白了,所有这些包装器(eclipse,hibernate)都使用相同的官方javax.persistence实现,但区别在于它们在包中包含了一些额外的东西? – skiabox 2013-03-14 15:35:17

+0

'javax.persistence'是'唯一'的一个API,它是Java EE栈的一部分。基本上它是一组接口/注释,需要由提供者实现(eclipselink是JPA 2的参考实现)。请参阅[维基百科文章](http://en.wikipedia.org/wiki/Java_Persistence_API)了解更多信息。 – 2013-03-14 15:38:17

+0

非常感谢您提供优秀的信息。最后一件事,当我在非Maven项目中使用它时,我的项目使用了哪个实现? – skiabox 2013-03-14 15:41:22

相关问题