Tu peux créer des critères dynmiquement avec n'importe quel type de données, pourvu que cela ait un sens pour le mapping qui les traitera grace à l'API Criteria :
http://www.hibernate.org/hib_docs/v3/re ... g-criteria
Criteria critere = session.createCriteria(obj_2.class);
// Un objet critere est instancié pour la classe obj_2 {}
critere .add( Expression.eq( propriété1_obj_2, eg.propriete1_obj_1 ) );
// On ajoute à critere une restriction sur la propriété voulu ;
... répéter l'opération pour toutes les propriétés ;
critere.List();
//exécution de la requête d'extraction en appliquant les critères;