Дискриминатор Java Jpa Class, который расширяется, может быть классом, присущим типу

У меня есть одна таблица в базе данных, и я хочу знать, какой тип это экземпляр. У меня есть два человека разных типов. У меня проблемы. Моя первая сущность:

@Entity
@Table(name = "lekarfizo")
@DiscriminatorColumn(name = "type")  
@DiscriminatorValue("lekar")  

И второе:

@Entity
@Table(name = "lekarfizo")
@DiscriminatorValue("fizio")  

public class Fizioterapeut extends Lekarfizo 

Проблема в том, что первая сущность может быть экземпляром второй. Второй работает нормально, а второй может быть только экземпляром второго объекта. Я хочу знать, как я могу это исправить и отличить эти две сущности.


person J.P    schedule 23.04.2016    source источник


Ответы (1)


Используйте выражение типа сущности с оператором TYPE

List<Lekarfizo> rm = em.createQuery("select l from Lekarfizo l where type(l) = Lekarfizo", Lekarfizo.class).getResultList();
System.out.println(rm);

Ссылка: Как запросить только сущности суперкласса в запросе jpql?

person K.Nicholas    schedule 25.04.2016