the thing is: I have a decomposed N:M-relationship and the attributes after which I want to sort the collection are members of different classes!
Any ideas? Tino
Gelhar, Wallace Joseph wrote:
Hi Tino,
Sure you can do this. An example:
<class-descriptor class="BuildingImpl" table="tblPlnBuilding" > ... <collection-descriptor name="rooms" element-class-ref="RoomImpl"> <orderby name="roomNo" sort="ASC" /> <orderby name="roomSuffix" sort="DESC" /> <inverse-foreignkey field-ref="buildingId"/> </collection-descriptor> ... </class-descriptor>
Where roomNo and roomSuffix are attributes on the RoomImpl object.
Wally -----Original Message----- From: news [mailto:[EMAIL PROTECTED] On Behalf Of Tino Schöllhorn Sent: Friday, April 30, 2004 2:41 AM To: [EMAIL PROTECTED] Subject: Collection creation and sorting
Hi,
I have a (probably simple) question about sorting collections:
I have 3 classes which I successfully mapped to OJB:
class Company { Collection companyTeams;
public Collection getTeams() { //??? } }
class CompanyTeam { Company c; Team t; int pos; }
class Team { String name; Collection companyTeams; }
Now I want to achieve the following: The method getTeams() of class Company should return all Teams of that Company *sorted by CompanyTeam.pos AND Team.name*.
I know that I could write a quite complicated Comparator which just does that - but I have many other cases where I had to do that. And writing Comparators is not fun and is very error prone.
Is there a way to tell OJB that it should load the Collections in a such ordered fashion? I know that one can specify several orderby attributes but is it also possible to specify the orderby attributes which are located in different tables?
Or should I implement a QueryCustomizer?
In hope for help. tino
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]