I want to remove a object in castor, the object is a sub object in a vector, and it depends on the parent(use "depends" attribute in class tag in the mapping.xml file).
If I use vector's remove method to remove the object, it will throw a SQLException :
java.sql.SQLException: ORA-02292: integrity constraint (ASD.SYS_C0030018) violated - child record found
 

 at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168)
 
 at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)
 
 at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543)
 
 at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405)
 
 at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822)
 
 at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java:1446)
 
 at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1371)
 
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1900)
 
 at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:363)
 
 at org.exolab.castor.jdo.engine.SQLEngine.delete(SQLEngine.java:916)
 
 at org.exolab.castor.persist.ClassMolder.delete(ClassMolder.java:2236)
 
 at org.exolab.castor.persist.LockEngine.delete(LockEngine.java:529)
 
 at org.exolab.castor.persist.TransactionContext.prepare(TransactionContext.java:1191)
 
 at org.exolab.castor.jdo.engine.DatabaseImpl.commit(DatabaseImpl.java:498)
 
 at castortest.Test.run(Test.java:159)
 
 at java.lang.Thread.run(Thread.java:484)
 
But if I use Database's remove method, it will show:
org.exolab.castor.jdo.ClassNotPersistenceCapableException: The class castortest.Button is not persistence capable: no mapping was defined for the class
 
 at org.exolab.castor.jdo.engine.DatabaseImpl.remove(DatabaseImpl.java:377)
 
 at castortest.Test.run(Test.java:140)
 
 at java.lang.Thread.run(Thread.java:484)
 
How do I remove this object?
 
 
Thanks a lot.
 
Zhou Ye
 

Reply via email to