Hi all,
        I'm really lost with auto-delete feature...

        The model:

       0,n       0,n
Actors ------------ Roles

        The RDBMS schema:

actors ( id, ... )
roles ( id, ... )
actors_roles ( actor_id, role_id )

        The problem:

With the attached repository.xml, when I remove a role from an actor,
the role is also deleted from the table. But when I remove the actor,
the role is kept ?????

All attribute are ( auto-update, auto-delete ) set to false.

ojb-RC5

//----------------------------
        
                Transaction tx = odmg.newTransaction();
                tx.begin();
                Actor actor = retrieveActor(id);
                tx.lock(actor, Transaction.WRITE);
                actor.removeRole(0); ( delegate actor.roles.remove(0) on a vector )
                
                tx.commit();
//----------------------------




<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE descriptor-repository SYSTEM "repository.dtd" [<!ENTITY database SYSTEM 'repository_database.xml'>
]>
<descriptor-repository isolation-level="read-uncommitted" version="1.0">
	&database;
  <class-descriptor class="com.amdm.organisation.model.Login" table="logins">
    <field-descriptor autoincrement="true" column="ID" jdbc-type="INTEGER" name="id" primarykey="true"/>
    <field-descriptor column="login" jdbc-type="VARCHAR" name="login"/>
    <collection-descriptor auto-delete="false" auto-retrieve="true" auto-update="false" element-class-ref="com.amdm.organisation.model.Role" indirection-table="logins_roles" name="roles">
      <fk-pointing-to-this-class column="LOGIN_ID"/>
      <fk-pointing-to-element-class column="ROLE_ID"/>
    </collection-descriptor>
  </class-descriptor>
  <class-descriptor class="com.amdm.organisation.model.Role" table="roles">
    <field-descriptor autoincrement="true" column="ID" jdbc-type="INTEGER" name="id" primarykey="true"/>
    <field-descriptor column="NAME" jdbc-type="VARCHAR" name="name"/>
    <collection-descriptor auto-delete="false" auto-retrieve="false" auto-update="false" element-class-ref="com.amdm.organisation.model.Actor" indirection-table="actors_roles" name="actors" otm-dependent="false">
      <fk-pointing-to-this-class column="ROLE_ID"/>
      <fk-pointing-to-element-class column="ACTOR_ID"/>
    </collection-descriptor>
  </class-descriptor>
  <class-descriptor class="com.amdm.organisation.model.Actor" table="Actors">
    <field-descriptor sequence-name="actors_id_seq" autoincrement="true" column="ID" jdbc-type="INTEGER" name="id" primarykey="true"/>
    <field-descriptor column="FIRSTNAME" jdbc-type="VARCHAR" name="firstname"/>
    <field-descriptor column="LASTNAME" jdbc-type="VARCHAR" name="lastname"/>
    <field-descriptor column="address_id" jdbc-type="integer" name="addressId"/>
    <collection-descriptor auto-delete="true" auto-retrieve="true" auto-update="false" element-class-ref="com.amdm.organisation.model.Role" indirection-table="actors_roles" name="roles">
      <fk-pointing-to-this-class column="ACTOR_ID"/>
      <fk-pointing-to-element-class column="ROLE_ID"/>
    </collection-descriptor>
  </class-descriptor>
  <class-descriptor class="com.amdm.organisation.model.Address" table="Addresses">
    <field-descriptor autoincrement="true" column="ID" jdbc-type="INTEGER" name="id" primarykey="true"/>
    <field-descriptor column="address1" jdbc-type="VARCHAR" name="address1"/>
    <field-descriptor column="address2" jdbc-type="VARCHAR" name="address2"/>
    <field-descriptor column="zip" jdbc-type="VARCHAR" name="zip"/>
    <field-descriptor column="city" jdbc-type="VARCHAR" name="city"/>
    <field-descriptor column="country" jdbc-type="VARCHAR" name="country"/>
  </class-descriptor>
</descriptor-repository>

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

Reply via email to