This is one of thuse cases where using Object model seems to be an extra work. As the previous poster suggests, you can make your code look much cleaner by using
Code:
Whatever object = (Whatever)session.load(Whatever.class, whateverId)
... but it will still make multiple querries, even though you can "insert" your entire object with a simple JDBC query.
If you strive for Hibernate encapsulation for the sake of hiding the SQL, you could probably burry this insert in a stored procedure.
(assuming your database supports stored procedures).
Some things can be also done thru bulk updates, but I am afraid it won't be possible for this, as your associations hide the Id.