Hi,

this might be an easy question, I'm quite new to OJB. I have a question 
concerning the following example:

Class A has a primary key field "PKEY" with type int and other elements in 
addition.

Class B has "PKEY" as a foreign key field plus another additional field. 
Together, both entries are the primary key for Class B.

Now, if I query Class A in source code, I want to get a Collection of objects 
of Class B belonging to Class A. So in repository.xml I did the following:

<class-descriptor
    class="namespace.ClassA"
    table="table_class_a"
>
    <field-descriptor id="1"
        name="pkey"
        column="pkey"
        jdbc-type="INTEGER"
        primarykey="true"
        autoincrement="true"
    />
    ....
    <collection-descriptor 
        name="class_b"
        element-class-ref="namespace.ClassB"
        auto-retrieve="true"
        auto-update="true"
        auto-delete="true"
        orderby="pkey"
        sort="DESC"
    >
    <inverse-foreignkey field-id-ref="1"/>
    </collection-descriptor>
</class-descriptor> 

And here for ClassB:

<class-descriptor
    class="namespace.ClassB"
    table="table_class_b"
>
    <field-descriptor id="1"
        name="pkey"
        column="pkey"
        jdbc-type="INTEGER"
        primarykey="true"
    />
    <field-descriptor id="2"
        name="other"
        column="other"
        jdbc-type="VARCHAR"
        primarykey="true"
    />
</class-descriptor>   

Now, if I create in my source a class A instance and add a class B collection 
to it, everything goes fine. Class A is stored in the DB as well as all 
instances of class B.

On deletion of class A, I also start a query to delete all B connected to it, 
so something like:

broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey);
Criteria crit = new Criteria();
crit.addEqualTo("pkey", new Integer(pkey));
Query query_A = new QueryByCriteria(namespace.ClassA.class, crit);
Query query_B = new QueryByCriteria(namespace.ClassB.class, crit);
broker.deleteByQuery(queryA);
broker.deleteByQuery(queryA);

If I insert a new instance of ClassB to the collection of ClassB objects in 
ClassA, this new instance is also automatically added to the DB. However, and 
now we get to the problem, if I delete an ClassB object from the collection in 
ClassA and store the ClassA object again, this ClassB object is not removed 
from the database.

What do I have to do to automatically trigger the deletion of this object?


Thanks for your help,


Sebastian
-- 


Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer

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

Reply via email to