Hi Neil,
I fear the docs are a bit unprecise here.
For your scenario you must use auto-delete="true".
The doc is referring to DList collection mainly!
cheers,
Thomas
Neil Blue wrote:
Hello,
I have set up a simple test with OJB 0.9.7.
I have two classes Simple and Simple2, where Simple contains a Simple2
attribute. I then set up a repository for these classes:
<class-descriptor
class="com.novobase.jaxbjdo.Simple"
table="simple">
<field-descriptor id="1"
name="id"
column="ID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="true"/>
<field-descriptor id="2"
name="idSimple2"
column="simpleid"
jdbc-type="INTEGER"/>
<reference-descriptor
refresh="true"
auto-retrieve="true"
<!-- I need to add auto-delete="true" here for ODMG to auto delete, though
the
documentation says you should not use this setting with ODMG -->
name="simple2"
class-ref="com.novobase.jaxbjdo.Simple2">
<foreignkey field-id-ref="2"/>
</reference-descriptor>
</class-descriptor>
<class-descriptor
class="com.novobase.jaxbjdo.Simple2"
table="simple2">
<field-descriptor id="1"
name="id"
column="ID"
jdbc-type="INTEGER"
primarykey="true"
autoincrement="true"/>
</class-descriptor>
for good measure here is my test code:
// open the database
Implementation odmg = OJB.getInstance();
Database db = odmg.newDatabase();
db.open( "repository.xml", Database.OPEN_READ_WRITE );
// make simple
Simple simple = new Simple();
Simple2 simple2 = new Simple2();
simple.setSimple2( simple2 );
// print the object
System.err.println( simple );
// write the object
Transaction tx = odmg.newTransaction();
tx.begin();
tx.lock( simple, Transaction.WRITE );
tx.commit();
// query for the simple object
tx.begin();
OQLQuery query = odmg.newOQLQuery();
query.create( "select * from com.novobase.jaxbjdo.Simple" );
DList allObjects = ( DList ) query.execute();
tx.commit();
// print the object
System.err.println( allObjects );
// delete the object
tx.begin();
Iterator itor = allObjects.iterator();
while ( itor.hasNext() )
{
db.deletePersistent( itor.next() );
}
tx.commit();
// query for the simple2 object
tx.begin();
query = odmg.newOQLQuery();
query.create( "select * from com.novobase.jaxbjdo.Simple2" );
allObjects = ( DList ) query.execute();
tx.commit();
// print the object
System.err.println( allObjects );
Thanks
Neil
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>