Usted puede utilizar Sesión # createFilter que es una forma de HQL que opera de forma explícita en las colecciones. Por ejemplo, usted menciona los padres y niños por lo que si usted tiene una persona p de la forma más básica sería:
session.createFilter(p.getChildren(), "").list()
Esto simplemente se devuelve una lista de los niños. Es importante tener en cuenta que la colección devuelta no es "en vivo", de ninguna manera está asociada con p.
La parte interesante proviene del segundo argumento. Este es un fragmento HQL. Aquí, por ejemplo, es posible que desee:
session.createFilter(p.getChildren(), "select count(*)").uniqueResult();
Usted ha mencionado que tiene una cláusula en donde, por lo que también puede ser que desee:
session.createFilter(p.getChildren(), "select count(*) where this.age > 18").uniqueResult();
Aviso existe ninguna es de cláusula. Es decir que la cláusula from está implícita en la asociación.A los elementos de la colección se les da el alias "this" para que pueda referirse a él desde otras partes del fragmento HQL.
Tenga en cuenta que parece tener poco control sobre la clave utilizada cuando se realiza la comprobación de existencia con contiene en un LazyCollection. Eso es un poco complicado porque no puedes usar claves naturales para hacer la verificación de existencia. –