|
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
|
