Algo asi, bueno, si la clase "padre" tambien hace referencia a la PK de una clase "hija" tambien con llamar solo al padre,obtienes tambien todos los datos de los "hijos"-relacionados con FK con solo 1 consulta.
Sea como sea (si accedes desde el padre o el hijo) solo tienes que hacer una consulta en el HQL de esa clase (Sin joins ni nada).
ejemplo
Código C++:
Ver original<bean name="valueListHandler"
class="net.mlw.vlh.DefaultValueListHandlerImpl" lazy-init="true">
<property name="config.adapters">
<map>
<!-- Inclou aqui les consultes dels teus llistats; tambe pots definir llistats -->
<!-- que no heretin de baseHibernateAdapter, i utilitzar la teva implementacio. -->
<entry key="expVehImplicatsList">
<bean parent="baseHibernateAdapter">
<property name="hql">
<value>
[B]FROM
xxx.VO.ExpVehImplicatsVO AS ve WHERE 1=1 AND ve.tipus =2 AND ve.id.NExpedient = '[num_expediente]'
/~sortColumn: ORDER BY ve.[sortColumn] [/B][sortDirection]~/
</value>
</property>
</bean>
</entry>
</map>
</property>
</bean>
esto seria por ejemplo para un listado.