Hi,
So I have a 1-to-many relation between two tables : toto and tableau
toto (id, nom)
tableau (id, totoid, nombre)
When i browse my table toto with a requete like "select t from toto t"
, I get all occurences of my table tableau in a vector named tableau.
And when i browse this vector tableau, i got some problems...
I have three tableau per table toto in my database.
And when i browse each tableau in each toto i got something like this :
id : 1
nom : toto
tableau.elementAt(0) = 1
tableau.elementAt(1) = 6
tableau.elementAt(2) = 11
id : 2
nom : toto
tableau.elementAt(0) = 1
tableau.elementAt(1) = 6
tableau.elementAt(2) = 11
tableau.elementAt(3) = 2
tableau.elementAt(4) = 7
tableau.elementAt(5) = 12
In my second occurence of my table toto, i got six element in my vector
instead of the three that are in my base. The first three elements comes
from my first occurence of my table toto and the others are in my
database : they are what i want...
look the results of some requetes from my database :
test=> select * from tableau;
id | totoid | nombre
----+--------+--------
1 | 1 | 1
2 | 2 | 2
6 | 1 | 6
7 | 2 | 7
11 | 1 | 11
12 | 2 | 12
test=> select * from toto;
id | nom
----+----------------------
1 | toto
2 | toto
(2 rows)
If someone can help me please answer me...
I give you my sources :
Here is my Toto.java :
public class Toto {
private int id;
private String nom;
private Vector tableau = new Vector();
.......
Here is my Client.java :
[...]
db = jdo.getDatabase();
db.begin();
oql = db.getOQLQuery( "SELECT t FROM Toto t ORDER BY t.id" );
results = oql.execute();
while ( results.hasMore() ) {
Toto toto;
toto = (Toto) results.next();
System.out.print( "id : " + toto.getId()+ "\nnom : " + toto.getNom()
+ "\n");
for ( int i=0 ; i<toto.getTableau().size() ; i++ ) {
System.out.println( "tableau.elementAt(" + i + ") = " +
(Tableau)toto.getTableau().elementAt(i) );
}
}
db.commit();
db.close();
[...]
And this is my mapping.xml :
<mapping>
<class name="Toto" identity="id">
<description>Toto</description>
<map-to table="toto"/>
<field name="id" type="integer" >
<sql name="id" type="integer"/>
</field>
<field name="nom" type="java.lang.String">
<sql name="nom" type="char"/>
</field>
<field name="tableau" type="Tableau" required="true"
collection="vector">
<sql many-key="totoid"/>
</field>
</class>
<class name="Tableau" identity="id">
<description>Tableau</description>
<map-to table="tableau"/>
<field name="id" type="integer" >
<sql name="id" type="integer"/>
</field>
<field name="totoId" type="Toto">
<sql name="totoid"/>
</field>
<field name="nombre" type="integer" >
<sql name="nombre" type="integer"/>
</field>
</class>
</mapping>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-dev