Hi Thomas, all

I really sorry not to be able to make the dynamic Proxies by my own.....But
I am afraid that I really don't manage to make it works by myself....
Something should have makes me wrong.

Here is an easy sample of my Proxy use who doesn't work correctly ...


I have 5 objects (represent tables) Aver,Bgra,Casd,Dcat,Esas with these
relationships :

Aver                    Bgra            Casd            Dcat
Esas
-------                 -------         -------         -----
--------- 
aVER_ID_PK              gRA_ID_PK       aSD_ID_PK       cAT_ID_PK
sAS_ID_PK
                        gRA-NAME        aSD_NAME        cAT_NAME
sAS_NAME
                        aVER_ID_FK      aVER_ID_FK      aVER_ID_FK
aSD_ID_FK
                                        aCAT_ID_FK
gRA_ID_FK
        

I have this in my source code:

Class Aver implements InterfaceAver {
public long id
long getId() {...}
void setId(long id) { ...}
[...]
}


Interface Aver {
//no long id; declaration;
long getId() {...}
void setId(long id) { ...}
}

Class Bgra {
public InterfaceAver aVER_ID_PK;
InterfaceAver  getAVER_ID_PK() {...}
void setAver(InterfaceAver aver) {...}
[...]
}


In my main () {
Criteria crit = new Criteria();
crit.addEqualTo("gRA_NAME", "Smith");
Query q = QueryFactory.newQuery(Bgra.class, crit);

broker.beginTransaction();
Collection results = broker.getCollectionByQuery(q);
Bgra graEdited;         
Iterator iter = results.iterator();             
while (iter.hasNext()) {
        graEdited = (Bgra)iter.next();
}
broker.commitTransaction();
}

I declared for Aver and Bgra in the repository.xml like this :

<class-descriptor 
  class="Aver"
  proxy="dynamic"
  table="AVER">
  <field-descriptor id="0"
    name="aVER_ID_PK"
    column="AVER_ID_PK"
    jdbc-type="BIGINT"
    primarykey="true"
  />
  <collection-descriptor
    name="collBgra"
    element-class-ref="Bgra"
    auto-retrieve="true"
    auto-update="false"
    auto-delete="false">
    <inverse-foreignkey field-ref="aVER_ID_PK"    />
  </collection-descriptor>
  <collection-descriptor
    name="collCasd"
    element-class-ref="Casd"
    auto-retrieve="true"
    auto-update="false"
    auto-delete="false">
    <inverse-foreignkey field-ref="aVER_ID_PK"    />
  </collection-descriptor>
  <collection-descriptor
    name="collDcat"
    element-class-ref="Dcat"
    auto-retrieve="true"
    auto-update="false"
    auto-delete="false">
    <inverse-foreignkey field-ref="aVER_ID_PK"    />
  </collection-descriptor>
</class-descriptor>             


<class-descriptor 
  class="Bgra"
  table="BGRA">
  <field-descriptor id="0"
    name="gRA_ID_PK"
    column="GRA_ID_PK"
    jdbc-type="BIGINT"
    primarykey="true"
  />
  <field-descriptor id="1"
    name="gRA_NAME"
    column="GRA_NAME"
    jdbc-type="VARCHAR"
  />
  <field-descriptor id="2"
    name="aVER_ID_PK"
    column="VER_ID_PK"
    jdbc-type="BIGINT"
  />
  <reference-descriptor
    name="aAVER_ID_PK"
    class-ref="Aver"
    auto-retrieve="true"
    auto-update="false"
    auto-delete="false">
<foreignkey field-ref="aVER_ID_PK" />
  </reference-descriptor>
  <collection-descriptor
    name="collEsas"
    element-class-ref="Esas"
    auto-retrieve="true"
    auto-update="false"
    auto-delete="false">
    <inverse-foreignkey field-ref="gRA_ID_FK"    />
  </collection-descriptor>

</class-descriptor>



An I have this error:

JSQLConnect(2.3007) Trial license - expires on:Sat Apr 19 03:24:23 CEST
2003, unlimited connections
[org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl]
ERROR: while set field: 
object class[ Bgra
target field: aAVER_ID_PK
target field type: Aver
object value class: $Proxy0
object value: [Id] 15]
java.lang.IllegalArgumentException
        at
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.
java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Pe
rsistentFieldDefaultImpl.java:147)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReference(Persi
stenceBrokerImpl.java:1035)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(Pers
istenceBrokerImpl.java:1013)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterat
or.java:426)
        at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:235)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1280)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1406)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1452)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Pers
istenceBrokerImpl.java:1090)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Per
sistenceBrokerImpl.java:1134)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getDBObject(Persistence
BrokerImpl.java:1529)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByIdentity(Per
sistenceBrokerImpl.java:1632)
        at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getObjectByIdenti
ty(DelegatingPersistenceBroker.java:284)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.materializeSubject(Indi
rectionHandler.java:290)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.getRealSubject(Indirect
ionHandler.java:277)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(IndirectionHandl
er.java:246)
        at $Proxy0.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2177)
        at java.lang.StringBuffer.append(StringBuffer.java:361)
        at
org.apache.ojb.broker.util.BrokerHelper.buildMessageString(BrokerHelper.java
:471)
        at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Pe
rsistentFieldDefaultImpl.java:164)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReference(Persi
stenceBrokerImpl.java:1035)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(Pers
istenceBrokerImpl.java:1013)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterat
or.java:426)
        at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:235)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1280)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1406)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1452)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1439)
        at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQu
ery(DelegatingPersistenceBroker.java:310)
        at businessobjects.BO.getInformation(BO.java:61)
        at businessobjects.Application.run(Application.java:53)
        at businessobjects.Application.main(Application.java:36)
rethrown as org.apache.ojb.broker.metadata.MetadataException: Error setting
field:aAVER_ID_PK in object:Bgra
        at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Pe
rsistentFieldDefaultImpl.java:165)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReference(Persi
stenceBrokerImpl.java:1035)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(Pers
istenceBrokerImpl.java:1013)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterat
or.java:426)
        at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:235)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1280)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1406)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1452)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Pers
istenceBrokerImpl.java:1090)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Per
sistenceBrokerImpl.java:1134)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getDBObject(Persistence
BrokerImpl.java:1529)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByIdentity(Per
sistenceBrokerImpl.java:1632)
        at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getObjectByIdenti
ty(DelegatingPersistenceBroker.java:284)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.materializeSubject(Indi
rectionHandler.java:290)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.getRealSubject(Indirect
ionHandler.java:277)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(IndirectionHandl
er.java:246)
        at $Proxy0.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2177)
        at java.lang.StringBuffer.append(StringBuffer.java:361)
        at
org.apache.ojb.broker.util.BrokerHelper.buildMessageString(BrokerHelper.java
:471)
        at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Pe
rsistentFieldDefaultImpl.java:164)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReference(Persi
stenceBrokerImpl.java:1035)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(Pers
istenceBrokerImpl.java:1013)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterat
or.java:426)
        at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:235)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1280)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1406)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1452)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1439)
        at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQu
ery(DelegatingPersistenceBroker.java:310)
        at businessobjects.BO.getInformation(BO.java:61)
        at businessobjects.Application.run(Application.java:53)
        at businessobjects.Application.main(Application.java:36)
Caused by: java.lang.IllegalArgumentException
        at
sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.
java:63)
        at java.lang.reflect.Field.set(Field.java:519)
        at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Pe
rsistentFieldDefaultImpl.java:147)
        ... 32 more
rethrown as org.apache.ojb.broker.PersistenceBrokerException: Error
invoking:toString: Could not obtain next object: Error setting
field:aAVER_ID_PK in object:Bgra
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(IndirectionHandl
er.java:264)
        at $Proxy0.toString(Unknown Source)
        at java.lang.String.valueOf(String.java:2177)
        at java.lang.StringBuffer.append(StringBuffer.java:361)
        at
org.apache.ojb.broker.util.BrokerHelper.buildMessageString(BrokerHelper.java
:471)
        at
org.apache.ojb.broker.metadata.fieldaccess.PersistentFieldDefaultImpl.set(Pe
rsistentFieldDefaultImpl.java:164)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReference(Persi
stenceBrokerImpl.java:1035)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveReferences(Pers
istenceBrokerImpl.java:1013)
        at
org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(RsIterat
or.java:426)
        at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:235)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1280)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1406)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1452)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1439)
        at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getCollectionByQu
ery(DelegatingPersistenceBroker.java:310)
        at businessobjects.BO.getInformation(BO.java:61)
        at businessobjects.Application.run(Application.java:53)
        at businessobjects.Application.main(Application.java:36)
Caused by: org.apache.ojb.broker.PersistenceBrokerException: Could not
obtain n[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: Error
invoking:toString: Could not obtain next object: Error setting
field:aAVER_ID_PKr in object:Bgra
ext object: Error setting field:aVER_Id_PK in object:Bgra
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.materializeSubject(Indi
rectionHandler.java:300)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.getRealSubject(Indirect
ionHandler.java:277)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(IndirectionHandl
er.java:246)
        ... 17 more
Caused by: java.util.NoSuchElementException: Could not obtain next object:
Error setting field:aAVER_ID_PK in object:Bgra
        at
org.apache.ojb.broker.accesslayer.RsIterator.next(RsIterator.java:250)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1280)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1406)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getCollectionByQuery(Pe
rsistenceBrokerImpl.java:1452)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollection(Pers
istenceBrokerImpl.java:1090)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.retrieveCollections(Per
sistenceBrokerImpl.java:1134)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getDBObject(Persistence
BrokerImpl.java:1529)
        at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByIdentity(Per
sistenceBrokerImpl.java:1632)
        at
org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getObjectByIdenti
ty(DelegatingPersistenceBroker.java:284)
        at
org.apache.ojb.broker.accesslayer.IndirectionHandler.materializeSubject(Indi
rectionHandler.java:290)
Exception in thread "main" 


What is very weird is when I put InterfaceAver in the repository like this:

<class-descriptor 
  class="InterfaceAver">
</class-descriptor>

and in the Bgra descriptor :
  <reference-descriptor
    name="aAVER_ID_PK"
    class-ref="InterfaceAver"
    auto-retrieve="true"
    auto-update="false"
    auto-delete="false">
<foreignkey field-ref="aVER_ID_PK" />
  </reference-descriptor>

It is working but only for one object. If I put Interfacexxx for all my
dynamic proxies, it failled....

Am I nuts ?? ............

Thanks a lot.


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

Reply via email to