我创建了一个使用@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规范:



然后:

07-27 18:23