我想创建一个primary composite key
并使用父类中的@Id
字段。但它不起作用。为什么呢?
@MappedSuperclass
static abstract class SuperEntity {
@Id
private Long id;
}
@Entity
@IdClass(SuperPK.class)
public static class ChildEntity extends SuperEntity {
@Id
private String lang;
}
public class SuperPK {
public SuperPK(Long id, String lang) {
//...
}
}
结果:Property of @IdClass not found in entity ChildEntity: id
答案 0 :(得分:1)
我找到了关于此错误的open issue。
其中一条评论指出要覆盖ID属性的getter作为解决方法。
@Entity
@IdClass(SuperPK.class)
public static class ChildEntity extends SuperEntity {
@Id
private String lang;
@Override @Id
public Long getId() {
return super.getId();
}
}