JPA @MappedSuperclass Eclipse中的单独的JAR(JPA @MappedS

2019-09-21 10:11发布

我有一个@MappedSuperclass AbstractEntity,我用我所有的@Entity类。 它只要超类是在同一个Eclipse项目为我的实体完美的作品。 但因为我重用的几个项目之间的这种超,我只是想打破它到它自己的JAR文件。 当我这样做,(当然我添加JAR文件到构建路径),Eclipse中给出了我的@实体类的每一个错误:

该实体没有定义主键属性。

Eclipse中突出了@Entity注解为错误的来源。 当然,所有的类都从这个AbstractEntity继承。 包名称是在这两个项目中的相同。 该JAR项目拥有所有必需的构建路径 - 有在包含AbstractEntity的JAR文件的项目没有错误。

当我部署此我的应用程序服务器(JBoss的7.1),它工作正常。 这让我觉得这只是一个Eclipse问题,即它被错误地识别错误。

摘要实体:

package com.xyc.abc;

import java.io.Serializable;

import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.MappedSuperclass;

@MappedSuperclass
public abstract class AbstractEntity implements Serializable {

private static final long serialVersionUID = 1L;

private Long id;

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public Long getId() {
    return id;
}

public void setId(Long id) {
    this.id = id;
}
}

简单的实体类示例:

 @Entity
 public class TestEntity extends AbstractEntity {
 ...
 }

我已经看到了一些其他职位说,问题可能是在超类的注解是干将上,而不是在领域 - 这只是一个问题,如果你没有你的实体,这是我做内的其他JPA批注。 有任何想法吗?

Answer 1:

看起来这是关系到这里所描述的错误:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=361042

什么最终修复它(更多的是解决办法的真)被添加AbstractEntity到的类列表中persistence.xml包含我的实体项目。 即使AbstractEntity位于一个单独的JAR ,而不是一个具体的实体本身,我想这为Eclipse足够的信息来停止抱怨。 这似乎并不有对应用程序本身产生任何不利影响。



文章来源: JPA @MappedSuperclass in separate JAR in Eclipse