Hi Armin:
    I try to implement ManageableCollection via DMapImpl,but it can't work.
I don't know what's worng with it. I design a PersonMap class that extends DMapImpl 
and implement ManageableCollection, as like:
package com.dsc.nana.domain.organization;

import org.apache.ojb.odmg.collections.DMapImpl;
import org.apache.ojb.broker.ManageableCollection;
import java.util.Iterator;
import com.dsc.nana.persistence.PersistentObject;

public class PersonMap extends DMapImpl implements ManageableCollection{

    public PersonMap() {
        super();
    }

    public void ojbAdd(Object anObject)
    {
        super.getEntries().add(anObject);
    }

    public void ojbAddAll(ManageableCollection otherCollection)
    {
        super.putAll((PersonMap) otherCollection);
    }

    public Iterator ojbIterator()
    {
        return super.values().iterator();
    }
}

And I declare the PersonMap class in repository as :

   <class-descriptor
      class="com.dsc.nana.domain.organization.PersonMap"
      table="OJB_DMAP"
   >
      <field-descriptor 
         name="id"
         column="ID"
         jdbc-type="INTEGER"
         primarykey="true"
         autoincrement="true"
      />
      <field-descriptor 
         name="size"
         column="SIZE_"
         jdbc-type="INTEGER"
      />
      <collection-descriptor
         name="entries"
         element-class-ref="org.apache.ojb.odmg.collections.DMapEntry"
         collection-class="org.apache.ojb.broker.util.collections.ManageableHashSet"
      >
         <inverse-foreignkey field-ref="dmapId"/>
      </collection-descriptor>
   </class-descriptor>

Then I get error messages as :

11:21:57,906 INFO  [STDOUT] [org.apache.ojb.broker.ta.NamingLocator] INFO:
11:21:57,921 INFO  [STDOUT] Init NamingLocator
11:21:57,921 INFO  [STDOUT] [org.apache.ojb.broker.ta.NamingLocator] INFO:
11:21:57,937 INFO  [STDOUT] Properties for creating the initial context: null
11:21:58,453 INFO  [STDOUT] [org.apache.ojb.odmg.TransactionImpl] ERROR:
11:21:58,453 INFO  [STDOUT] Locking obj [EMAIL PROTECTED] with lock mode 1 failed
11:21:58,484 INFO  [STDOUT] com.dsc.nana.domain.organization.Person
11:21:58,484 ERROR [STDERR] java.lang.ClassCastException: 
com.dsc.nana.domain.organization.Person
11:21:58,500 ERROR [STDERR]     at java.util.AbstractMap$4.next(AbstractMap.java:435)
11:21:58,515 ERROR [STDERR]     at 
org.apache.ojb.odmg.TransactionImpl.lockCollections(Unknown Source)
11:21:58,531 ERROR [STDERR]     at 
org.apache.ojb.odmg.TransactionImpl.register(Unknown Source)
11:21:58,546 ERROR [STDERR]     at org.apache.ojb.odmg.TransactionImpl.lock(Unknown 
Source)
11:21:58,578 ERROR [STDERR]     at 
org.apache.ojb.odmg.oql.OQLQueryImpl.performLockingIfRequired(Unknown Source)
11:21:58,593 ERROR [STDERR]     at 
org.apache.ojb.odmg.oql.OQLQueryImpl.execute(Unknown Source)
11:21:58,609 ERROR [STDERR]     at 
com.dsc.nana.persistence.JakartaOJBHelper.findByPrimaryKey(JakartaOJBHelper.java:102)
11:21:58,625 ERROR [STDERR]     at 
com.dsc.nana.persistence.PersistentObjectHelper.findByPrimaryKey(PersistentObjectHelper.java:67)
11:21:58,640 ERROR [STDERR]     at com.dsc.nana.control.TestObjectBean.createPer

Could you help me ?
Thanks advance.

Dogie Tsai

Reply via email to