I have the exact same problem. I would like to be able to specify more than one column for the select key like this:
<generator class="select">
<param name="key0">col4</param>
<param name="key1">col6</param>
<param name="key2">col9</param>
</generator>
as i do not have a unique natural column by itself.
I cannot change the schema.
to work around this, it seems I will have to manually re-query the db for my object, using my composite natural keys, in order to find my generated id.
either that, or use sequence.CURRVAL+1 with the "sequence" generator type, but there's no option for that either.
Curb that - more trawling of the forums turned this up:
http://forum.hibernate.org/viewtopic.php?t=973262
works like magic!