redbull redbull - 10 months ago 71
Java Question

Java /JPA | Query with specified inherited type

I am building a query on a generic table "Sample" and I have several types which inherit from this table "SampleOne", "SampleTwo".
I require a query like :

select s from Sample where s.type = :type

where type would be a discriminator value of the table. Is it possible in any way ( and avoid to create an entity specific queries, one for each SampleOne, SampleTwo... etc )

I would greatly appreciate any input in this topic,

Kind regards,


In JPA 2.0 you can use TYPE expression (though currently it doesn't work with parameters in Hibernate, see HHH-5282):

select s from Sample s where TYPE(s) = :type

The similar Hibernate-specific expression is .class:

select s from Sample s where s.class = :type