Существует несколько аннотированных классов JPA, таких как:
@MappedSuperclass
public abstract class BaseEntity<T> implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator="sequence_db")
private T id;
//Some other fields with its getter & setter
}
И еще один класс:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@Table(name = "BASE_OFFIC")
@DiscriminatorColumn(name = "discriminator_col")
@SequenceGenerator(name = "sequence_db" , sequenceName = "SEQ_BASE_OFFIC", allocationSize = 1)
public class BaseOffic extends BaseEntity<Integer>{
//Some other fileds here with its getter & setter methods
И третий класс, который расширен от BaseOffic
, например:
@Entity
@DiscriminatorValue("real_offic")
public class Offic extends BaseOffic {
//some other fields with its getter & setter
}
Как вы видите, как офицер, так и базовый офицер InheritanceType.SINGLE_TABLE
.
С этим дизайном все работало правильно, но я был вынужден выполнить следующую задачу:
Существует четвертый класс, который расширен от класса Offic
с Inheritance.JOINED , тогда как текущий дизайн, как вы можете видеть выше, не изменился .
Другая рука, класс Offic
- это InheritanceType.SINGLE_TABLE
с BaseOffic
и Inheritance.JOINED
с четвертым классом, который я хочу создать.
Каков правильный синтаксис для этого, чтобы оба сценария работали?
.
РЕДАКТИРОВАНИЕ:
Четвертый класс такой:
public class [class_name] extends Offic {
....
}
Я хочу, чтобы этот класс был наследником. СОЕДИНЕНО с классом Offic