Hibernate - Таблица для конкретной стратегии класса - отдельные идентификаторы для каждой таблицы
В моем приложении есть объект собрания, свойства которого хранятся в таблице собраний. Я должен создать новый объект, скажем, "meetingNEW", имеющий несколько разных свойств, но большинство из них общие.
Я думаю использовать таблицу для конкретной стратегии класса, но я хотел бы иметь отдельные идентификаторы для двух таблиц, а не наследовать ее от суперкласса. Является ли это возможным? Я нахожу только примеры с общим идентификатором.
Моя идея: MeetingType -> абстрактный суперкласс
Meeting расширяет MeetingType с Meeting_id в качестве PK (таблица)
MeetingNEW расширяет тип собрания с MeetingNEW_id в качестве PK (таблица)
Спасибо
1 ответ
Почему вы используете таблицу для конкретной стратегии класса? Для меня это выглядит как стратегия "таблица на подкласс", как показано ниже, с таблицей meeting_type с общими свойствами и другими таблицами с конкретными свойствами с собственным идентификатором PK.
@Entity @Inheritance(strategy = InheritanceType.JOINED)
public class MeetingType {
@Id
@Column("meeting_type_id")
public long getId();
}
@Entity @PrimaryKeyJoinColumns({ @PrimaryKeyJoinColumn(name = "meeting_id", referencedColumnName = "meeting_type_id") })
public class Meeting extends MeetingType {
@Column("meeting_id")
public long getMeetingId();
}
@Entity @PrimaryKeyJoinColumns({ @PrimaryKeyJoinColumn(name = "meeting_new_id", referencedColumnName = "meeting_type_id") })
public class MeetingNew extends MeetingType {
@Column("meeting_new_id")
public long getMeetingNewId();
}