我创建了一个使用@Id指向@Embeddable复合键的实体。我认为一切正常。但是,据我所知,在将@Id切换为@EmbeddedId之后,一切仍然可以正常工作。
之前:
@Entity
public final class MyEntity {
private CompoundKey id;
@Id
public CompoundKey getId() {
return id;
}
public void setId(CompoundKey id) {
this.id = id;
}
后:
@Entity
public final class MyEntity {
private CompoundKey id;
@EmbeddedId
public CompoundKey getId() {
return id;
}
public void setId(CompoundKey id) {
this.id = id;
}
引用复合键时,使用@Id和@EmbeddedId批注之间有区别吗?
最佳答案
实际上,我对版本之前的感到惊讶。根据规范,映射Embeddable
复合键的正确方法是“之后”的版本。引用JPA 1.0规范:
然后: