MappedSuperclass отображает все дочерние объекты в один дочерний - PullRequest
0 голосов
/ 28 февраля 2019

У меня есть базовый абстрактный класс TranslationBase и подклассы отбуксировки [лица]: CountryTranslation и RegionTranslation, как показано ниже:

TranslationBase:

@MappedSuperclass
@IdClass(TranslationBasePK.class)
public abstract class TranslationBase<T> implements Serializable {

    @Id
    @ManyToOne
    @JoinColumn(name = "id")
    private T ownerEntity;

    @Id
    @JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
    @Column(name = "language_id")
    private Long languageId;

    private String name;
}

CountryTranslation :

@Entity
@Table(name = "country_translation")
public class CountryTranslation extends TranslationBase<Country> {
}

RegionTranslation :

@Entity
@Table(name = "region_translation")
public class RegionTranslation extends TranslationBase<Region> {
}

И TranslationBasePK:

public class TranslationBasePK implements Serializable {

    private Long ownerEntity;

    private Long languageId;
}

В БД я нашел столбец идентификатора в таблицах CountryTranslation и RegionTranslation со ссылкой на идентификатор таблицы Country !!

Я ожидаю, что CountryTranslation будет ссылаться на идентификатор Country и RegionTranslation для ссылки на идентификатор класса Region.

Примечание. Страна и регион имеют идентификатор @Id feild с именем;

...