public void applyRestrictionsFor(Class<?> target, Criteria criteria) {
if(!hasSubclasses()) {
return;
}
CompositeRestriction or = Restrictions.or();
criteria.add(or);
if(target == getPersistentType()) {
or.with(Restrictions.exists(SubclassMapper.DISCRIMINATOR, false));
}
for (SubclassMapper<?> subclassMapper : getSubclasses()) {
subclassMapper.applyRestrictions(target, or);
}