У меня есть 3 объекта, унаследованных от другого объекта.
Я использую стратегию Single_Table
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
например. Классы B, C и D наследуются от A
На объекте B я с нетерпением загружаю другой объект X. К сожалению, Hibernate игнорирует мою аннотацию и создает выбор для каждой сущности B для выборки сущности X.
@ManyToOne(fetch=FetchType.EAGER)
private Projekt projekt;
Моя инструкция выбора выглядит следующим образом:
«Выберите из A a´
Еще несколько примеров кода:
@Entity
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "DType", discriminatorType = DiscriminatorType.STRING, length = 3)
public abstract class A {}
@Entity
@DiscriminatorValue(B.PREFIX)
public class B extends A {
@ManyToOne(fetch=FetchType.EAGER)
private Projekt projekt;
}
Теперь я ожидаю, что Hibernate запросит все классы, которые наследуются от A, что он и делает. К сожалению, он также выполняет оператор select для каждой строки результата, чтобы запросить «projekt», чего я хочу избежать.