У меня есть базовый абстрактный класс 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 с именем;