Представьте себе следующий сценарий, в котором мы используем стратегию наследования TABLE_PER_CLASS и Template в качестве суперкласса, а Product в качестве подкласса.
Template:
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
@Table(name = "Templates")
@NamedQuery(name = "getAllTemplates", query = "SELECT t FROM Template t")
public class Template implements Serializable { ...}
Product:
@Entity
@Table(name = "Product")
public class Product extends Template implements Serializable { ... }
В этом сценарии даже думал, что у меня в моей БД 2 шаблона и 1 продукт.Всякий раз, когда я вызываю шаблон с именемQuery, я получаю как продукты, так и шаблоны.
Я пытался сделать что-то вроде этого:
SELECT t FROM Template t WHERE TYPE(t) = Template
Однако он возвращает следующую ошибку: У класса нет дескриптораили дескриптор, который не использует наследование или использует ClassExtractor для наследования
Есть ли способ получить только шаблоны?