This is the second option I mentioned. By doing this I won't get elements of class A (assuming these elements are considered having field2 = null). It would probably be clearer with a UI example : The user gets this table : Class field1 field2 A Paris A London B New York NY B Los Angeles CA He clicks on the field2 column header to sort by state, so he would expect : Class field1 field2 A Paris A London B Los Angeles CA B New York NY If the sorting is done only on elements of the class B, the user will get this result : Class field1 field2 B Los Angeles CA B New York NY That seems very strange to get less results when you sort a table on a field that on the other... Why don't you make "from B b order by b.field2" ?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: IT Product Guide on ITManagersJournal Use IT products in your business? Tell us what you think of them. Give us Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more http://productguide.itmanagersjournal.com/guidepromo.tmpl _______________________________________________ hibernate-devel mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/hibernate-devel |
- [Hibernate] Re: Polymorphic queries, where and order by Andrei Sereda
- Re: [Hibernate] Re: Polymorphic queries, where and orde... William Draï
- Re: [Hibernate] Re: Polymorphic queries, where and ... Andrei Sereda