I have simple one-to-many relationship, mapped as set:
<set name="children" lazy="false" fetch="subselect">
this works fine, constructing subselect SQL which looks like (e.g. for HQL query "from Parent"):
select <child fields> from <child table> where child.PARENT_OID in (select this_.OID from PARENT this_)
However, when adding a formula-based property into Parent:
<property name="myFormulaField" formula="(complex_select )"/>
Now SQL becomes:
select <child fields> from <child table> where PARENT_OID in (complex_select) as formula0_1_, <some parent fields> from PARENT this_)
This SQL fails because of incorrect grammar (it also seems that backet is missing).
This is something weird, because subselect fetching only needs Parent's identity column, not any other properties. And I don't think it should be affected by Parent's formula-based properties.
I can provide more details if necessary, I stripped out all extra mapping/SQL stuff because it seems to be irrelevant here.
This bug appeared in 3.0.5 later I've downloaded 3.1rc3 and it also fails.
Hibernate 3.0.5, Hibernate 3.1rc3