Let's say we have the following (simplified) mapping :
<class name="A" table="T">
<property name="field1" type="string"/>
<subclass name="B">
<property name="field2" type="string"/>
</subclass>
</class>
Now we can execute any HQL query on the class A using the field1, for example
"from A a where a.field1 like 'anything%'" or "from A a order by a.field1"
The problems come when we want to use the field2 with the same queries. Of couse in simple SQL it is possible to do select * from T order by field2
But in HQL, "from A a order by a.field2" rightly fails because field2 is not defined
for class A.
This causes problems in sortable or filtered data tables where the user can sort or filter
by any column he wants.
There is currently only two options :
- allowing to sort only on columns of class A : possible but my users won't be really happy
- "casting" the query to class B when the user sorts on a column of class B : that means that the results
count of the query is not the same when it is sorted than when it is not ; it completely breaks the
semantics of sorting/filtering
I understand it does not follow the OO approach of HQL but it would be really useful to have an additional
syntax to allow using fields of the subclass in HQL queries, something like "select a from A+ a order by a.field2",
or maybe an option in the Query interface like query.setUseInheritedProperties(true).
What do you think of this ?
Note : this is an extension of the JIRA HB-792 and could allow to resolve this case in a better way
William
------------------------------------------------------- This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 Project Admins to receive an Apple iPod Mini FREE for your judgement on who ports your project to Linux PPC the best. Sponsored by IBM. Deadline: Sept. 24. Go here: http://sf.net/ppc_contest.php _______________________________________________ hibernate-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/hibernate-devel