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