Hi Armin, I'm using the PersistenceBroker API.
Chris. -----Original Message----- From: Armin Waibel [mailto:[EMAIL PROTECTED] Sent: Tuesday, January 31, 2006 4:08 PM To: OJB Users List Subject: Re: Super class record not being deleted. Hi Chris, which api do you use? Armin Christopher Lowe wrote: > Hi All, > I have an inheritance relationship between my Product and Car > objects. New inserts of car objects work fine. The problem I'm experiencing > is that when I remove a car the corresponding product record is not being > removed from the product table. The mappings are shown below. I'm using > version db-ojb-1.0.4, the oscahce for caching, and the remote locking > implementation. Is there something wrong with my mappings? I've included my > stack trace so that you can observe that the car and all the relationships > are removed correctly, but not the product entry. Please advise. > > Thank you, > Chris > > Mappings: > > <class-descriptor class="com.dm.beans.Product" schema="destinationdb" > table="product"> > <field-descriptor name="id" column="ID" jdbc-type="INTEGER" > primarykey="true" nullable="false" autoincrement="true"/> > <field-descriptor name="supplierId" column="SUPPLIER_ID" > jdbc-type="INTEGER"/> > <field-descriptor name="name" column="NAME" jdbc-type="VARCHAR" /> > <field-descriptor name="ackOptLock" column="ACK_OPT_LOCK" > jdbc-type="BIGINT" locking="true"/> > <reference-descriptor > name="supplier" > class-ref="com.dm.beans.suppliers.Supplier" > proxy="true" > auto-update="link" > auto-delete="none" > > > <foreignkey field-ref="supplierId"/> > </reference-descriptor> > </class-descriptor> > > <class-descriptor class="com.dm.beans.car.Car" schema="destinationdb" > table="car"> > <field-descriptor name="id" column="ID" jdbc-type="INTEGER" > primarykey="true" nullable="false"/> > <field-descriptor name="modelId" column="MODEL_ID" jdbc-type="INTEGER" > /> > <field-descriptor name="typeId" column="TYPE_ID" jdbc-type="INTEGER" /> > <field-descriptor name="largePassenger" column="LARGE_PASSENGER" > jdbc-type="INTEGER" /> > <field-descriptor name="mediumPassenger" column="MEDIUM_PASSENGER" > jdbc-type="INTEGER" /> > <field-descriptor name="smallPassenger" column="SMALL_PASSENGER" > jdbc-type="INTEGER" /> > <field-descriptor name="largeLuggage" column="LARGE_LUGGAGE" > jdbc-type="INTEGER" /> > <field-descriptor name="mediumLuggage" column="MEDIUM_LUGGAGE" > jdbc-type="INTEGER" /> > <field-descriptor name="smallLuggage" column="SMALL_LUGGAGE" > jdbc-type="INTEGER" /> > <field-descriptor name="quantity" column="QUANTITY" jdbc-type="INTEGER" > /> > <field-descriptor name="allocation" column="ALLOCATION" > jdbc-type="INTEGER" /> > <field-descriptor name="ackOptLock" column="ACK_OPT_LOCK" > jdbc-type="BIGINT" locking="true"/> > <reference-descriptor > name="super" > class-ref="com.dm.beans.Product" > > > <foreignkey field-ref="id"/> > </reference-descriptor> > <reference-descriptor > name="model" > class-ref="com.dm.beans.type.CarModel" > proxy="true" > auto-update="link" > auto-delete="false" > > > <foreignkey field-ref="modelId"/> > </reference-descriptor> > <reference-descriptor > name="type" > class-ref="com.dm.beans.type.CarType" > proxy="true" > auto-update="link" > auto-delete="false" > > > <foreignkey field-ref="typeId"/> > </reference-descriptor> > <collection-descriptor > name="amenities" > > collection-class="org.apache.ojb.broker.util.collections.RemovalAwareList" > element-class-ref="com.dm.beans.type.Amenity" > auto-update="link" > auto-delete="link" > proxy="true" > indirection-table="product_amenity" > > > <fk-pointing-to-this-class column="PRODUCT_ID"/> > <fk-pointing-to-element-class column="AMENITY_ID"/> > </collection-descriptor> > <collection-descriptor > name="mediaFiles" > > collection-class="org.apache.ojb.broker.util.collections.RemovalAwareList" > element-class-ref="com.dm.beans.Multimedia" > auto-update="link" > auto-delete="link" > proxy="true" > indirection-table="product_multimedia" > > > <fk-pointing-to-this-class column="PRODUCT_ID"/> > <fk-pointing-to-element-class column="MULTIMEDIA_ID"/> > </collection-descriptor> > <collection-descriptor > name="rates" > > collection-class="org.apache.ojb.broker.util.collections.RemovalAwareList" > element-class-ref="com.dm.beans.car.CarRate" > auto-update="true" > auto-delete="true" > proxy="true" > > > <inverse-foreignkey field-ref="productId"/> > </collection-descriptor> > </class-descriptor> > > Stack Trace: > > 2006-01-31 15:35:24,312 DEBUG implementations.CarDAOOJBImpl - remove(): > 518 > 2006-01-31 15:35:24,312 DEBUG implementations.CarDAOOJBImpl - remove(): > [EMAIL PROTECTED] > id=518 > supplierId=<null> > name=<null> > modelId=<null> > typeId=<null> > adults=<null> > children=<null> > infants=<null> > largeLuggage=<null> > mediumLuggage=<null> > smallLuggage=<null> > quantity=<null> > allocation=<null> > ] > [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: > SQL:DELETE FROM product_amenity WHERE PRODUCT_ID=? > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeUpdateSQL: > DELETE FROM product_amenity WHERE PRODUCT_ID=? > [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: > SQL:DELETE FROM product_multimedia WHERE PRODUCT_ID=? > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeUpdateSQL: > DELETE FROM product_multimedia WHERE PRODUCT_ID=? > [org.apache.ojb.broker.core.QueryReferenceBroker] DEBUG: > getCollectionByQuery (class > org.apache.ojb.broker.util.collections.RemovalAwareList, class > com.dm.beans.car.CarRate, QueryByCriteria from class > com.dm.beans.car.CarRate where [productId = 518]) > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeQuery: > QueryByCriteria from class com.dm.beans.car.CarRate where [productId = 518] > [org.apache.ojb.broker.accesslayer.sql.SqlGeneratorDefaultImpl] DEBUG: > SQL:SELECT > A0.ID,A0.CAR_ID,A0.START_DATE,A0.END_DATE,A0.COMMISSION,A0.DAY1,A0.DAY2,A0.D > AY3,A0.DAY4,A0.DAY5,A0.DAY6,A0.DAY7,A0.EXTRA,A0.ACK_OPT_LOCK FROM > destinationdb.car_rate A0 WHERE A0.CAR_ID = ? > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeQuery: > [EMAIL PROTECTED] > [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: > RsIterator[org.apache.ojb.broker.accesslayer.RsQueryObject[query: > QueryByCriteria from class com.dm.beans.car.CarRate where [productId = > 518], class descriptor: com.dm.beans.car.CarRate]] initialized > [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: hasNext() -> true > [org.apache.ojb.broker.accesslayer.RsIterator] DEBUG: hasNext() -> false > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeDelete: > [EMAIL PROTECTED] > id=29 > commission=21% > day1=49.15 > day2=98.3 > day3=136.13 > day4=181.5 > day5=198.0 > day6=198.0 > day7=198.0 > extra=28.29 > ] > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeDelete: > [EMAIL PROTECTED] > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeDelete: > [EMAIL PROTECTED] > id=518 > supplierId=173 > name=Daihatsu - Mini Moke > modelId=61 > typeId=7 > adults=2 > children=2 > infants=0 > largeLuggage=0 > mediumLuggage=0 > smallLuggage=1 > quantity=2 > allocation=2 > ] > [org.apache.ojb.broker.accesslayer.JdbcAccessImpl] DEBUG: executeDelete: > [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]
