12

Вопрос по java – Отображение внешнего ключа внутри класса Embeddable

я используюeclipselink заJPA, У меня есть сущность, которая имеетcomposite key изготовлены из двух полей. Следующее моеEmbeddableкласс первичного ключа & apos; полей (членов). @Embeddable public class LeavePK { @ManyToOne(optional = false) ...

1 ответ

14

Не помещайте отношения в классы идентификаторов, ни для@IdClass или же@EmbeddedId из них.@Embeddable класс может включать только аннотации@Basic, @Column, @Temporal, @Enumerated, @Lob, или же@Embedded, Все остальное является специфическим для поставщика синтаксисом (например, Hibernate позволяет это, но поскольку вы используете EclipseLink, который является JPA RI, я сомневаюсь, что это то, что вам нужно).

Вот пример отображения JPA PK / FK:

@Entity
@Table(name = "Zips")
public class Zip implements Serializable
{
    @EmbeddedId
    private ZipId embeddedId;

    @ManyToOne
    @JoinColumn(name = "country_code", referencedColumnName = "iso_code")
    private Country country = null;

    ...
}

@Embeddable
public class ZipId implements Serializable
{
    @Column(name = "country_code")
    private String countryCode;

    @Column(name = "code")
    private String code;

    ...
}

НТН

Похожие вопросы