Sorry,
there is not duplicity now, 2 adresses to save = 2 rows (it's ok)
but there is sometimes (50% too) oidPerson (foreign key to person) = 0 in address 
table.

*********** REPLY SEPARATOR  ***********

On 20.2.2003 at 16:52 Mahler Thomas wrote:

>Hi Tomas,
>
>Please set
>auto-update="false" and auto-delete="false"
>and try again.


Does it mean that jdo support implicitly cascading?




>
>Hope that helps...
>cheers,
>Thomas
>
>> -----Original Message-----
>> From: Tomas Klubal [mailto:[EMAIL PROTECTED]]
>> Sent: Thursday, February 20, 2003 3:31 PM
>> To: [EMAIL PROTECTED]
>> Subject: JDO - saving objects duplicity
>>
>>
>> Hello,
>>
>> 1) I'm trying JDO and I receiving errors.  Exactly, sometimes
>> (50%) when I'm saving objects  are objects in collection saved twice.
>> I'm using ojb 0.99 built from source connected to mysql DB.
>> I have two classes Person and Address. One Person can have
>> 0..n Addresses, so I'have collection adresy in Person object
>> ( private Vector adresy;). I'have auto-update = true
>>  When I save object Person with PB  everything runs OK, I can
>> see one new Person in table "Person" and new Addresses  in
>> table "Address" (if I'm saving two then there are two rows).
>>
>> When I use JDO, it saves one Person (it's OK),  but at 50% of
>> runs there are more rows than Addresses to save (Some rows
>> are duplicated, identical).
>>
>> Log from JDO looks like this (one Person, two Addresses, seems OK):
>>
>> *********************************
>> [JDO] DEBUG: OjbStoreManager.flush: com.uvt.Address{303}, P_NEW
>> [JDO] DEBUG: OjbStoreManager.insert
>> [JDO] DEBUG: OjbStoreManager.flush: com.uvt.Person{282}, P_NEW
>> [JDO] DEBUG: OjbStoreManager.insert
>> [JDO] DEBUG: OjbStoreManager.flush: com.uvt.Address{302}, P_NEW
>> [JDO] DEBUG: OjbStoreManager.insert
>> [JDO] DEBUG: OjbStoreManager.flush: end, err=false
>> [JDO] DEBUG: OjbStoreConnector.commit
>> *********************************
>> but then there are identical rows (sometimes only one Address
>> is duplicated, sometimes both).
>>
>> My code looks like this:
>>
>> ********************************
>> public boolean savePerson() {
>>         Person person = null;
>>         Address adresa = null;
>>         Address adresa2 = null;
>>
>>         PersistenceManager manager = null;
>>         PersistenceManagerFactory factory = null;
>>
>>         person = new Person();
>>         person.setJmeno("Thomas");
>>         person.setPrijmeni("Klubal");
>>
>>         adresa2 = new Address();
>>         adresa2.setUlice("Greeen st. 256");
>>         adresa2.setMesto("Prague");
>>         adresa2.setPsc("165 00");
>>         person.addAddress(adresa2);
>>
>>         adresa = new Address();
>>         adresa.setUlice("Red st. 45");
>>         adresa.setMesto("Paris");
>>         adresa.setPsc("895422");
>>         person.addAddress(adresa);
>>
>>         try {
>>             factory = new OjbStorePMF();
>>             manager = factory.getPersistenceManager();
>>             Transaction tx = null;
>>             tx = manager.currentTransaction();
>>             tx.begin();
>>             manager.makePersistent(person);
>>             tx.commit();
>>
>>             System.out.println("\nPerson saved. " +
>> person.toString());
>>             manager.close();
>>         }
>>         catch (PersistenceBrokerException ex) {
>>             System.out.println("Error: " + ex.getMessage());
>>             return false;
>>         }
>>         return true;
>>     }
>> *************************************************************
>> this is my repiository_user.xml:
>>
>> <class-descriptor class="com.uvt.Address" table="Address">
>>       <field-descriptor id="1" name="oid" column="oid"
>> jdbc-type="INTEGER" primarykey="true"
>> autoincrement="true"></field-descriptor>
>>       <field-descriptor id="2" name="oidPerson"
>> column="oidPerson" jdbc-type="INTEGER"></field-descriptor>
>>       <field-descriptor id="3" name="ulice" column="ulice"
>> jdbc-type="VARCHAR"></field-descriptor>
>>       <field-descriptor id="4" name="mesto" column="mesto"
>> jdbc-type="VARCHAR"></field-descriptor>
>>       <field-descriptor id="5" name="psc" column="psc"
>> jdbc-type="VARCHAR"></field-descriptor>
>> </class-descriptor>
>>
>> <class-descriptor class="com.uvt.Person" table="Person">
>>       <field-descriptor id="1" name="oid" column="oid"
>> jdbc-type="INTEGER" primarykey="true"
>> autoincrement="true"></field-descriptor>
>>       <field-descriptor id="2" name="jmeno" column="jmeno"
>> jdbc-type="VARCHAR"></field-descriptor>
>>       <field-descriptor id="3" name="prijmeni"
>> column="prijmeni" jdbc-type="VARCHAR"></field-descriptor>
>>       <collection-descriptor name="adresy"
>> element-class-ref="com.uvt.Address" orderby="oid" sort="DESC"
>> auto-retrieve="true" auto-update="true" auto-delete="true">
>>             <inverse-foreignkey field-id-ref="2"></inverse-foreignkey>
>>       </collection-descriptor>
>>  </class-descriptor>
>>
>> Please dont you know whats wrong?
>>
>>
>> Tomas Klubal :-)
>> E-mail: [EMAIL PROTECTED]
>>
>>
>> ---------------------------------------------------------------------
>> 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]


Tomas Klubal :-)
E-mail: [EMAIL PROTECTED]


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

Reply via email to