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]

Reply via email to