I'd be interested to know if there's a fancy way as well, but what we have to do is:
em.createQuery("from Pets p where p.type = 'dog'")
or whatever is equivilent (selecing on the descriminator specifically in your case I'd expect)
thanks for your suggestion.
my person object is passed around in a transaction and it doesn't know whether it needs cats or dogs by the time it's selected. there's no way i can do this unless i retrive person from the database again. it would be nice to know how others handle this situation.