Я довольно новичок в HQL, но я бы предложил что-то вроде следующего:
DetachedCriteria sub1 = DetachedCriteria.forClass(Entitiy2);
DetachedCriteria sub2 = DetachedCriteria.forClass(Entity3);
Criteria criteria = getYourSession().createCriteria(Entity_1.class, "obj");
criteria.add(Restrictions.or(Subqueries.propertyIn("obj", sub1), Subqueries.propertyIn("obj", sub2));
Пожалуйста, поправьте меня, если я ошибаюсь.