Rya*_*anC 4 java eclipse entity jpa mappedsuperclass
我有一个@MappedSuperclass AbstractEntity,我用于所有@Entity类.只要超类与我的实体在同一个Eclipse项目中,它就可以完美地工作.但是因为我在几个项目中重用了这个超类,所以我只想把它分解成自己的JAR文件.当我这样做(当然我将JAR文件添加到构建路径中)时,Eclipse会在我的每个@Entity类上给出错误:
实体没有定义主键属性.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
简单实体类示例:
@Entity
public class TestEntity extends AbstractEntity {
...
}
Run Code Online (Sandbox Code Playgroud)
我已经看到一些其他帖子说问题可能是超类中的注释是在getter而不是在字段上 - 如果你的实体中没有其他JPA注释,这只是一个问题,我这样做.有任何想法吗?
看起来这与此处描述的错误有关:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=361042
最终修复它(更多的是一种解决方法)是在包含我的实体的项目中添加AbstractEntity
类列表persistence.xml
.即使AbstractEntity
它位于一个单独的JAR
并且本身不是具体的实体,我想这给了Eclipse足够的信息来阻止抱怨.这似乎没有对应用程序本身产生任何不利影响.
归档时间: |
|
查看次数: |
3870 次 |
最近记录: |