鉴于此类:
@MappedSuperclass
public abstract class AbstractEntity {
int id;
public void setId(int id) { this.id = id; }
public int getId() { return id; }
// other mappings
}
我想定义一个实体:
@Entity
public class SomeEntity extends AbstractEntity {
@Override
@Id // or @OneToOne etc.
public int getId() { return id; }
}
但是失败并显示“未指定标识符” (或“无法确定类型”)SomeEntity 上的错误。如果我从父类(super class)中删除 setter/getter ,它就会起作用。我不能执行此覆盖策略吗?为什么不,或者如果是的话 - 如何?
添加
@AttributeOverride(name = "id", column = @Column(name = "ID"))
到子类中不改变错误。
最佳答案
要创建实体类,该类必须满足一些要求。前任。必须有一个公共(public)/私有(private)构造函数。
以下是要求列表:
http://docs.oracle.com/javaee/5/tutorial/doc/bnbqa.html
希望这有帮助。
关于java - 为什么我不能重写和注释实体映射的 getter 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44414461/