[prev in list] [next in list] [prev in thread] [next in thread]
List: ojb-user
Subject: Re: Updating instead of Inserting
From: Jakob Braeuchi <jbraeuchi () gmx ! ch>
Date: 2005-03-23 18:27:45
Message-ID: 4241B521.8030805 () gmx ! ch
[Download RAW message or body]
hi wesley,
it looks like you are using th pk of NewClientGroup as fk pointing to
ClientRelationship. imo the field 'clientRelationshipId' shouls be used
here.
jakob
Lemke, Wesley schrieb:
> I still am unable to retrieve objects from the database. I've stepped
> through the code, but am having problems understanding what is going on.
>
> At line 158 of
> org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessIm
> plNew.java setValueFor() is being called with the Field's name =
> clientRelationship, and the type=Class model.client.ClientRelationship.
> However, the target and value objects are the same object (they have the
> same id), and are type NewClientGroup.
>
> Shouldn't the target and value objects be of type ClientRelationship?
>
> The other thing I noticed is the second time I run my code I don't get
> an exception, but I also don't get the NewClientGroups. I'm assuming
> this has something to do with the caching...
>
> -----Original Message-----
> From: Lemke, Wesley
> Sent: Tuesday, March 22, 2005 12:55 PM
> To: 'OJB Users List'
> Subject: RE: Updating instead of Inserting
>
>
> I am persisting the objects fine now, but I am getting an error when
> retrieving:
>
> [3/22/05 12:44:43:008 CST] 39432342 SystemOut O [PersistentField]
> ERROR: while set field:
> [try to set 'object value' in 'target object'
> target obj class: model.client.NewClientGroup
> target field name: clientRelationship
> target field type: class model.client.ClientRelationship
> object value class: model.client.NewClientGroup
> object value: model.client.NewClientGroup@3b4e2346
> ]
>
> Here are the pertinent parts of repository.xml:
>
> In the class-descriptor for ClientRelationship:
> <collection-descriptor
> name="clientGroups"
> element-class-ref="model.client.NewClientGroup"
> auto-delete="true"
> auto-update="true"
> >
> <inverse-foreignkey field-ref="clientRelationshipId" />
> </collection-descriptor>
>
> In the class-descriptor for NewClientGroup:
> <reference-descriptor name="clientRelationship"
> class-ref="model.client.ClientRelationship">
> <foreignkey field-ref="objectId"/>
> </reference-descriptor>
>
> In the NewClientGroup Class:
> private ClientRelationship clientRelationship; // with getter
> and setter defined.
>
> Here is the code I am running:
>
> Query q = new
> QueryByCriteria(ClientRelationship.class);
> Collection clientRelationships =
> broker.getCollectionByQuery(q); <-- exception thrown here.
> Iterator i = clientRelationships.iterator();
>
> writer.println("<br><br>");
> while (i.hasNext()) {
> ClientRelationship cr2 =
> (ClientRelationship) i.next();
>
> writer.println(cr2.getNameOfApproverOfNoContract());
> List clientGroups =
> cr2.getClientGroups();
> }
>
> I am assuming that when OJB pulls back the ClientRelationships, it is
> also pulling back the collection of NewClientGroups (and Subgroups).
> When it instantiates the NewClientGroup it is trying to set the
> clientRelationship field. Why is it trying to set it to a
> NewClientGroup, instead of the associated ClientRelationship?
>
> Here is the entire stack trace if it helps:
>
> [3/22/05 12:44:42:998 CST] 39432342 SystemOut O
> [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG:
> SQL:SELECT
> A0.CLASS_NAME,A0.client_grp_id,A0.INN_CLIENT_NB,A0.client_id,A0.LAST_MOD
> IFIED_USER,A0.SDD_COMP_I,A0.LAST_NAME_DT,A0.ETL_CLIENT_ID,A0.KEY_WORDS,A
> 0.LAST_NAME,A0.MAIL_MEMBERS,A0.PRIMARY_GRP_I,A0.group_id,A0.COMMENTS,A0.
> REPORTS_DESC,A0.EFF_DT,A0.NAME FROM client_group A0 WHERE ( A0.client_id
> = ?) AND (A0.CLASS_NAME = ?)
> [3/22/05 12:44:43:078 CST] 39432342 SystemErr R
> org.apache.ojb.broker.metadata.MetadataException: IllegalAccess error
> setting field:clientRelationship in object:model.client.NewClientGroup
> at
> org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessIm
> plNew.setValueFor(Unknown Source)
> at
> org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessIm
> plNew.set(Unknown Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReference(Unknow
> n Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReferences(Unkno
> wn Source)
> at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unkn
> own Source)
> at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown
> Source)
> at
> org.apache.ojb.broker.accesslayer.BasePrefetcher.prefetchRelationship(Un
> known Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks(Un
> known Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
> nown Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
> nown Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
> nown Source)
> at
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Un
> known Source)
> at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
> ery(Unknown Source)
> at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
> ery(Unknown Source)
> at
> servlets.InheritanceServlet.doPost(InheritanceServlet.java:79)
> at servlets.InheritanceServlet.doGet(InheritanceServlet.java:44)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictSe
> rvletInstance.java:110)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLi
> fecycleServlet.java:174)
> at
> com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycle
> Servlet.java:313)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLif
> ecycleServlet.java:116)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.
> java:283)
> at
> com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(Vali
> dServletReferenceState.java:42)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(Servle
> tInstanceReference.java:40)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispa
> tch(WebAppRequestDispatcher.java:948)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRe
> questDispatcher.java:530)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppReq
> uestDispatcher.java:176)
> at
> com.ibm.ws.webcontainer.servlet.InvokerServlet.service(InvokerServlet.ja
> va:255)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictSe
> rvletInstance.java:110)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLi
> fecycleServlet.java:174)
> at
> com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycle
> Servlet.java:313)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLif
> ecycleServlet.java:116)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.
> java:283)
> at
> com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(Vali
> dServletReferenceState.java:42)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(Servle
> tInstanceReference.java:40)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispa
> tch(WebAppRequestDispatcher.java:948)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRe
> questDispatcher.java:530)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppReq
> uestDispatcher.java:176)
> at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:7
> 9)
> at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInv
> oker.java:201)
> at
> com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocati
> on(CachedInvocation.java:71)
> at
> com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(Servle
> tRequestProcessor.java:182)
> at
> com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSELis
> tener.java:334)
> at
> com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection
> .java:56)
> at
> com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:
> 610)
> at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:431)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
> Caused by: java.lang.IllegalArgumentException: field type mismatch
> at java.lang.reflect.Field.set(Native Method)
> ... 49 more
> [3/22/05 12:44:43:008 CST] 39432342 SystemOut O [PersistentField]
> ERROR: while set field:
> [try to set 'object value' in 'target object'
> target obj class: model.client.NewClientGroup
> target field name: clientRelationship
> target field type: class model.client.ClientRelationship
> object value class: model.client.NewClientGroup
> object value: model.client.NewClientGroup@3b4e2346
> ]
> [3/22/05 12:44:47:865 CST] 39432342 WebGroup E SRVE0026E: [Servlet
> Error]-[servlets.InheritanceServlet]:
> org.apache.ojb.broker.PersistenceBrokerException:
> org.apache.ojb.broker.metadata.MetadataException: IllegalAccess error
> setting field:clientRelationship in object:model.client.NewClientGroup
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
> nown Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
> nown Source)
> at
> org.apache.ojb.broker.core.PersistenceBrokerImpl.getCollectionByQuery(Un
> known Source)
> at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
> ery(Unknown Source)
> at
> org.apache.ojb.broker.core.DelegatingPersistenceBroker.getCollectionByQu
> ery(Unknown Source)
> at
> servlets.InheritanceServlet.doPost(InheritanceServlet.java:79)
> at servlets.InheritanceServlet.doGet(InheritanceServlet.java:44)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictSe
> rvletInstance.java:110)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLi
> fecycleServlet.java:174)
> at
> com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycle
> Servlet.java:313)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLif
> ecycleServlet.java:116)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.
> java:283)
> at
> com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(Vali
> dServletReferenceState.java:42)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(Servle
> tInstanceReference.java:40)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispa
> tch(WebAppRequestDispatcher.java:948)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRe
> questDispatcher.java:530)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppReq
> uestDispatcher.java:176)
> at
> com.ibm.ws.webcontainer.servlet.InvokerServlet.service(InvokerServlet.ja
> va:255)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> at
> com.ibm.ws.webcontainer.servlet.StrictServletInstance.doService(StrictSe
> rvletInstance.java:110)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet._service(StrictLi
> fecycleServlet.java:174)
> at
> com.ibm.ws.webcontainer.servlet.IdleServletState.service(StrictLifecycle
> Servlet.java:313)
> at
> com.ibm.ws.webcontainer.servlet.StrictLifecycleServlet.service(StrictLif
> ecycleServlet.java:116)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstance.service(ServletInstance.
> java:283)
> at
> com.ibm.ws.webcontainer.servlet.ValidServletReferenceState.dispatch(Vali
> dServletReferenceState.java:42)
> at
> com.ibm.ws.webcontainer.servlet.ServletInstanceReference.dispatch(Servle
> tInstanceReference.java:40)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.handleWebAppDispa
> tch(WebAppRequestDispatcher.java:948)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRe
> questDispatcher.java:530)
> at
> com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppReq
> uestDispatcher.java:176)
> at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:7
> 9)
> at
> com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInv
> oker.java:201)
> at
> com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocati
> on(CachedInvocation.java:71)
> at
> com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(Servle
> tRequestProcessor.java:182)
> at
> com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSELis
> tener.java:334)
> at
> com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection
> .java:56)
> at
> com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:
> 610)
> at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:431)
> at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:593)
> Caused by: org.apache.ojb.broker.metadata.MetadataException:
> IllegalAccess error setting field:clientRelationship in
> object:model.client.NewClientGroup
> at
> org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessIm
> plNew.setValueFor(Unknown Source)
> at
> org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDirectAccessIm
> plNew.set(Unknown Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReference(Unknow
> n Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.retrieveReferences(Unkno
> wn Source)
> at
> org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unkn
> own Source)
> at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown
> Source)
> at
> org.apache.ojb.broker.accesslayer.BasePrefetcher.prefetchRelationship(Un
> known Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.performRetrievalTasks(Un
> known Source)
> at
> org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unk
> nown Source)
> ... 40 more
> Caused by: java.lang.IllegalArgumentException: field type mismatch
> at java.lang.reflect.Field.set(Native Method)
> ... 49 more
>
> -----Original Message-----
> From: Armin Waibel [mailto:arminw@apache.org]
> Sent: Tuesday, March 22, 2005 9:22 AM
> To: OJB Users List
> Subject: Re: Updating instead of Inserting
>
>
> Lemke, Wesley wrote:
>
>>Thanks Armen, that worked. I've made this same mistake before, you
>>would think I'd learn :)
>>
>
>
> ...you are in good company, the history of mankind is an endless list of
>
> repeated mistakes ;-)
>
>
>
>>The AdmObject will have many more extents in the full application.
>>Every persistent class will extend it, or a subclass of it. I only
>>had one class extending it in this subset.
>>
>
>
> I ask this each time, because using inheritance can be a performance
> killer and should be avoided if possible. So if you don't regular need
> query for AdmObject's, don't declare the mapping.
>
> Armin
>
>
>
>>-----Original Message-----
>>From: Armin Waibel [mailto:arminw@apache.org]
>>Sent: Tuesday, March 22, 2005 8:38 AM
>>To: OJB Users List
>>Subject: Re: Updating instead of Inserting
>>
>>
>>Hi Wes,
>>
>>why did you need mapping for AdmObject when only one class "extent"
>>AdmObject?
>>
>>In mapping for NCG
>>
>><collection-descriptor
>> name="subgroups"
>> element-class-ref="model.client.Subgroup"
>> auto-delete="true"
>> auto-update="true"
>> >
>> <inverse-foreignkey field-ref="objectId" />
>> </collection-descriptor>
>>
>>the inverse-foreignkey refer to the PK field of SG. Think this is not
>>correct, you need a FK field in SG to store the PK value of NCG. This
>
> FK
>
>>field must also be used by the 'clientGroup' reference in SG [don't
>>use an anomymous field, because of the 1:n relation
>>http://db.apache.org/ojb/docu/guides/advanced-technique.html#How+do+
>>]
>>
>>regards,
>>Armin
>>
>>
>>
>>Lemke, Wesley wrote:
>>
>>
>>>I have 4 classes:
>>>
>>>AdmObject -- highlevel class that all of our persistent classes
>>>extend. Contains objectId field. Generic Group -- Abstract. Extends
>>>AdmObject. Contains common fields for NewClientGroup and Subgroup and
>>
>>
>>>the ojbConcreteClass. NewClientGroup -- extends Generic Group,
>>>contains a collection of Subgroups.
>>>Subgroup -- extends Generic Group. Has a reference to the
>>>NewClientGroup.
>>>
>>>I am trying to persist NewClientGroup and Subgroup (along with common
>>>fields in Generic Group) to the same table. Here is a portion of my
>>>mapping document (most of the common fields from Generic group are
>>>removed to simplifiy):
>>>
>>><class-descriptor
>>> class="model.AdmObject">
>>> <extent-class class-ref="model.client.GenericGroup" />
>>></class-descriptor>
>>>
>>><class-descriptor
>>> class="model.client.GenericGroup">
>>> <extent-class class-ref="model.client.Subgroup" />
>>> <extent-class class-ref="model.client.NewClientGroup" />
>>></class-descriptor>
>>>
>>><class-descriptor
>>> class="model.client.NewClientGroup"
>>> table="client_group">
>>> <field-descriptor
>>> name="objectId"
>>> column="group_id"
>>> jdbc-type="INTEGER"
>>> primarykey="true"
>>> autoincrement="true"
>>> access="readonly"
>>> />
>>> <field-descriptor
>>> name="internalClientNumber"
>>> column="INN_CLIENT_NB"
>>> jdbc-type="VARCHAR"
>>> />
>>> <field-descriptor
>>> name="ojbConcreteClass"
>>> column="CLASS_NAME"
>>> jdbc-type="VARCHAR"
>>> />
>>> <collection-descriptor
>>> name="subgroups"
>>> element-class-ref="model.client.Subgroup"
>>> auto-delete="true"
>>> auto-update="true"
>>> >
>>> <inverse-foreignkey field-ref="objectId" />
>>> </collection-descriptor>
>>></class-descriptor>
>>><class-descriptor
>>> class="model.client.Subgroup"
>>> table="client_group"
>>> >
>>> <field-descriptor
>>> name="objectId"
>>> column="group_id"
>>> jdbc-type="INTEGER"
>>> primarykey="true"
>>> autoincrement="true"
>>> access="readonly"
>>> />
>>> <field-descriptor
>>> name="name"
>>> column="NAME"
>>> jdbc-type="VARCHAR"
>>> />
>>> <field-descriptor
>>> name="ojbConcreteClass"
>>> column="CLASS_NAME"
>>> jdbc-type="VARCHAR"
>>> />
>>> <reference-descriptor name="clientGroup"
>>>class-ref="model.client.NewClientGroup">
>>> <foreignkey field-ref="objectId"/>
>>> </reference-descriptor>
>>></class-descriptor>
>>>
>>>Here is the code I am using:
>>> broker.beginTransaction();
>>> NewClientGroup ncg = new NewClientGroup();
>>> ncg.setInternalClientNumber("IntClntNbr");
>>> Subgroup sg = new Subgroup();
>>> sg.setName("FirstSubgroup");
>>> ncg.addSubgroup(sg);
>>> Subgroup sg2 = new Subgroup();
>>> sg.setName("Second Subgroup");
>>> ncg.addSubgroup(sg2);
>>> broker.store(ncg);
>>> broker.commitTransaction();
>>>
>>>I would assume that after the above code, there would be one
>>>NewClientGroup and 2 Subgroups in my client_group table. However,
>>>there is only one row, the Second Subgroup. Here is the debug SQL
>>>generated:
>>>
>>>DEBUG: SQL:INSERT INTO client_group (INN_CLIENT_NB,CLASS_NAME) VALUES
>>>(?,?)
>>>DEBUG: SQL:UPDATE client_group SET NAME=?,CLASS_NAME=? WHERE group_id
>>
>>=
>>
>>
>>>?
>>>
>>>Am I doing something wrong with my mapping or code? Is it possible to
>>
>>
>>>persist these classes to the same table?
>>>
>>>Any help would be appreciated.
>>>
>>>Thanks,
>>>Wes
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>>
>>>
>>>
>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
>>For additional commands, e-mail: ojb-user-help@db.apache.org
>>
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-user-help@db.apache.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic