Thank you for the SQLMaps suggestion.
To be more specific about our problem, we were trying to map 15 tables to one object and its one nested/child object. We did not want to create objects for each of the 15 tables just so we could do the join in HQL.
Our solution: Instead of writing a native SQL query that mapped nested child objects (which didn't work in Hibernate), we created two materialized views in the database that represented our 15 tables joined together. Then we were able to get it working with Hibernate using HQL:
Code:
parentObject = (ParentObject) dbSession.createQuery("FROM com.foo.ParentObject as parentObject left outer join fetch parentObject.childObject as childObject "
+ "WHERE ...").setString("paramOne", "bar").uniqueResult();
The ParentObject mapped to a materialized view and the ChildObject mapped to another materialized view joined together in the HQL.