]
Rostyslav Smirnov updated HHH-1400:
-----------------------------------
Attachment: SubselectFetch.java.patch
Attached a patch with proposed fix that handles arbitrary nested queries.
Using formula-based property causes invalid SQL code for children
"subselect" query
-----------------------------------------------------------------------------------
Key: HHH-1400
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-1400
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.1 rc3
Environment: Hibernate 3.0.5, Hibernate 3.1rc3
Oracle 8i
Reporter: Chris Rogers
Attachments: SubselectFetch.java, SubselectFetch.java.patch,
SubselectFormulaBug.zip, subselectformula.zip
I have simple one-to-many relationship, mapped as set:
<class name="Parent">
<set name="children" lazy="false"
fetch="subselect">
<key column="PARENT_OID"/>
<one-to-many class="Child"/>
</set>
</class>
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_)
(simplified)
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.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: