0

MYENTITYID_AID_B、および@Embeddableエンティティを持つテーブルがある場合、次のことに気付きました。

@Embeddable
public class EmbedMe {
    @Column(name="col_a")
    private String a;
    @Column(name="col_b")
    private String b;
    // getters-setters
}

そして、私はそれを次のように使用します@Entity:

@Entity
@Table(name="MyEntity")
public class MyEntity {
    @EmbeddedId
    @AttributeOverrides( {
        @AttributeOverride(name = "a", 
                           column = @Column(name = "id_a")), 
        @AttributeOverride(name = "b", 
                           column = @Column(name = "id_b")), 
        @AttributeOverride(name = "inexistingProp", 
                           column = @Column(name = "INEXISTENT_COL")), 
    })
    private EmbedMe embeded;
}

inexistingProp誤ったマッピング例外をスローする代わりに、オーバーライドは無視されます。これはどこにも文書化されていませんが、これは JPA の動作ですか? この問題に関する公式文書はありますか?


@Embeddableまた、 に既に正しいマッピング ( "id_a") があり、 をからに変更する@Columnと、次のエラーが発生することに気付きました。@AttributeOverrideid_afoo_bar_baz

org.hibernate.MappingException: Unable to find column with logical name: ID_A in org.hibernate.mapping.Table(MY_SCHEMA.MYENTITY) and its related supertables and secondary tables

FOO_BAR_BAZではなく、列が存在しないというエラーが表示されると思いますID_Aなぜそれは不平を言っているのID_Aですか?

更新MYENTITY: with@ManyToOneに関連する他のエンティティがあり、 でid_a明示されているため、このエラーが発生していることが判明しました@JoinColumns

4

0 に答える 0