У меня есть два спящих класса: базовый класс и расширенный класс с дополнительными полями. (Эти поля отображаются другими таблицами.)
Например, у меня есть:
@Entity
@Table(name="Book")
public class A {
private String ID;
private String Name;
// ...
}
@Entity
@Table(name="Book")
public class B extends A {
public String node_ID;
// ...
}
public class Node {
public String ID; // maps to B.node_ID
// ...
}
Как мне отобразить это в Hibernate? Документация Hibernate содержит три типа конфигураций наследования: одна таблица на класс, одна таблица со столбцом типа и таблица соединения - ни одна из них здесь не применима.
Причина, по которой мне нужно это сделать, заключается в том, что класс A взят из универсальной среды, которая многократно используется в нескольких проектах, а класс B (и узел) являются расширениями, характерными для одного проекта - они больше не будут использоваться. В будущем, возможно, у меня будет класс C с house_ID или каким-либо другим полем.
Редактировать: Если я попробую описанную выше конфигурацию псевдокода (две сущности, сопоставленные с одной и той же таблицей), я получу ошибку, что столбец DTYPE не существует. К HQL добавлено "где DTYPE =" A ".