Hi Nicolas,

I assume it's a bug in OJB, because DMapImpl does not implement
interface ManageableCollection.
I will try to write a test case for this problem to verify my assumption.

regards,
Armin

[EMAIL PROTECTED] wrote:

Probably an other newbie question :) . I try to generate the mapping for a Map attribute. Maybe somme body could advice me and show me where I do some errors in my mapping.

My classes (I put the getter and setter : maybe they could be false) :

public class Cooperative
{
    private String id;

private Map mesInseminateurs;

    public Cooperative()
    {
        ...
        mesInseminateurs = new DMapImpl();
    }

public Inseminateur getMesInseminateurs(String code) {
return (Inseminateur) mesInseminateurs.get(code); }


    public void setMesInseminateurs(String code, Inseminateur inseminateur) {
        mesInseminateurs.put(code, inseminateur);
    }

    public Map getMesInseminateurs() {
        return mesInseminateurs;
    }
    ...
}

public class Inseminateur
{
    private String id;

private String idCoop;

    public Inseminateur()
    {
        ...
        mesApplicationsCategorieInseminateur = new DMapImpl();
   }
   ...
}

id is the PK and idCoop the FK to generate the Map. So I wrote the next mapping :

  <class-descriptor
      class="com.arsoe.trelaze.coopgen.metier.cooperative.Cooperative"
      table="CIADATA.COOP">

<field-descriptor id="1"
name="id" column="IDCOOP" jdbc-type="VARCHAR" primarykey="true"/>
...
<collection-descriptor
name="mesInseminateurs"
element-class-ref="com.arsoe.trelaze.coopgen.metier.inseminateur.Inseminateur"
collection-class="org.apache.ojb.odmg.collections.DMapImpl">
<inverse-foreignkey field-ref="idCoop"/-->
</collection-descriptor>


</class-descriptor>

<class-descriptor
class="com.arsoe.trelaze.coopgen.metier.inseminateur.Inseminateur"
table="CIADATA.INS">
<field-descriptor id="1"
name="id" column="IDINS" jdbc-type="VARCHAR" primarykey="true"/>
...
<field-descriptor id="3"
name="idCoop" column="IDCOOP" jdbc-type="VARCHAR"/> </class-descriptor>


What could be the raison of such exception ?

[org.apache.ojb.broker.accesslayer.RsIterator] ERROR: Error while iterate ResultSet for query org.apache.ojb.broker.accesslayer.RsQueryObject[query: Query from class com.arsoe.trelaze.coopgen.metier.cooperative.Cooperative where {code=C720}, class descriptor: com.arsoe.trelaze.coopgen.
metier.cooperative.Cooperative]
java.lang.ClassCastException
org.apache.ojb.broker.PersistenceBrokerException: java.lang.ClassCastException
at org.apache.ojb.broker.core.QueryReferenceBroker.getCollectionByQuery(Unknown Source)
at org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollection(Unknown Source)
at org.apache.ojb.broker.core.QueryReferenceBroker.retrieveCollections(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.getObjectFromResultSet(Unknown Source)
at org.apache.ojb.broker.accesslayer.RsIterator.next(Unknown Source)
at org.apache.ojb.broker.core.PersistenceBrokerImpl.getObjectByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
at org.apache.ojb.broker.core.DelegatingPersistenceBroker.getObjectByQuery(Unknown Source)
at com.arsoe.trelaze.socle.dao.odmg.ODMGDataAccessObject.find(ODMGDataAccessObject.java:292)


This error is probably the raison why after there is an

Thank you in advance.

Nicolas,

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






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



Reply via email to