Eclipse警告:找不到类javax.persistence.*

Tra*_*rks 3 java eclipse jpa compiler-warnings eclipselink

这是我第一次真正使用Eclipse进行Java开发.我正在尝试使用EclipseLink的JPA实现.我将所有实体都移到了一个单独的包"实体"中.我有persistence.xml一个名为"dataModeling"的单独JPA项目.

包浏览器

一切都建立并运行良好.

几乎每个项目都取决于我的实体.但是,我看到一个警告Class javax.persistence.Entity not found - continuing with a stub.等出现,因为依赖项目不引用EclipseLink.

警告信息

解决方案是进入每个依赖项目的属性,在Java Build Path> Libraries下,单击Add Library,然后单击User Library,然后选择EclipseLink.

但是,对我来说,在每个项目中引用EclipseLink都没有意义!这是一个实现细节我不想给其他项目带来负担.看起来这种情况正在发生,因为其他项目看到了注释而无法识别它们.

所以真正的问题是:如何在没有其他项目需要引用我的JPA实现的情况下使用JPA(通过注释)?

Mac*_*ski 10

pom.xml应该包含:

<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>
    <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

第一个是Eclipse-Link(你已经拥有),第二个Persistence API是缺乏的.

如果你不使用maven - 请确保它javax.persistence-2.0.0.jar在你的类路径上.

请注意,这是版本2.0.0,最新版本是2.1.0

更新 使用的项目EntityManager应具有这些依赖性.将实体persistence.xml放在单独的jar文件中仍然需要使用它来实现上述依赖关系的其他项目.