I now have a running version, but the way Thomas proposed would be much nicer.

I have added a collection descriptor

<collection-descriptor
  name="addresses"
  element-class-ref="Adress"
  auto-update="true"
  auto-delete="true">

  <inverse-foreignkey field-ref="login"/>
</collection-descriptor>

and he returns both addresses.

I tried to modify my getters and setters for addresses to set homeAddress and workAddress, but I tested this and noticed that they are not invoked (why should they? (*grml*))

So I added a function assignAddresses(), which is invoked by the DAO getUser method.

public void addressAssignment() {
                
  Iterator i = this.adresses.iterator();
  while (i.hasNext()) {

    Adress address = (Address) i.next();

    if ("home".equals(adress.getType()))
      this.homeAddress = address;
    if ("work".equals(adress.getType()))
      this.workAddress = address;
  }
}

Now I have to take care that every setHomeAddress also modifies the collection (because I don't think that getAddresses() is invoked by ojb either ;) )

May be I implement a query costomizer who filters the addresses like described in the advanced mapping tutorial:

<collection-descriptor
  name="homeAddressCollection"
  element-class-ref="Address"
  auto-update="true"
  auto-delete="true">

  <inverse-foreignkey field-ref="login"/>

  <query-customizer
   class="AddressQueryCustomizer">
    <attribute attribute-name="type" attribute-value="home" />
  </query-customizer>
</collection-descriptor>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to