Gentlemen, I have tried these fixes to no avial. I have tried the key generator with both the trigger and returning params set and unset. Both ways produce keys for me but ultimately, my stacktrace ends up the same. Here it is. I included the entire output for reference.
C:\SchedulingFramework>java -classpath C:/SchedulingFramework/src/sample;C:/SchedulingFramework/lib/msf.jar;C:/ JBuilder6/lib/castor-0.9.4.1.jar;C:/JBuilder6/lib/xerces.jar;c:\JBuilder 6\lib\classes12.zip;C:/JBuilder6/jdk1.3.1/lib/tools.jar Msf [msf] Loading mapping descriptors from file:/C:/SchedulingFramework/src/sample/mapping.xml [msf] SQL for creating msf.MissionSchedulingRequest: INSERT INTO "MSR" ("ID","START_TIME","FINISH_TIME","SURGE") VALUES (?,?,?,?) [msf] SQL for deleting msf.MissionSchedulingRequest: DELETE FROM "MSR" WHERE "ID"=? [msf] SQL for updating msf.MissionSchedulingRequest: UPDATE "MSR" SET "START_TIME"=?,"FINISH_TIME"=?,"SURGE"=? WHERE "ID"=? AND "START_TIME"=? AND "FINISH_TIME"=? AND "SURGE"=? [msf] SQL for loading msf.MissionSchedulingRequest: SELECT "MSR"."START_TIME","MSR"."FINISH_TIME","MSR"."SURGE" FROM "MSR" WHERE "MSR"."ID"=? [msf] Key generator SEQUENCE has been instantiated, parameters: {sequence={0}_{1}_seq} [msf] SQL for creating msf.OpLoc: INSERT INTO "OPLOC" ("ID","MSR_ID","LOC_NAME","ICAO","LAT","LON","ELEVATION") VALUES ("OPLOC_ID_SEQ"."NEXTVAL",?,?,?,?,?,?) [msf] SQL for deleting msf.OpLoc: DELETE FROM "OPLOC" WHERE "ID"=? [msf] SQL for updating msf.OpLoc: UPDATE "OPLOC" SET "MSR_ID"=?,"LOC_NAME"=?,"ICAO"=?,"LAT"=?,"LON"=?,"ELEVATION"=? WHERE "ID"=? AND "MSR_ID"=? AND "LOC_NAME"=? AND "ICAO"=? AND "LAT"=? AND "LON"=? AND "ELEVATION"=? [msf] SQL for loading msf.OpLoc: SELECT "OPLOC"."MSR_ID","OPLOC"."LOC_NAME","OPLOC"."ICAO","OPLOC"."LAT","OPLOC" ."LON","OPLOC"."ELEVATION" FROM "OPLOC" WHERE "OPLOC"."ID"=? [msf] SQL for creating msf.Unit: INSERT INTO "UNIT" ("ID","MSR_ID","OPLOC_ID","UNIT_NAME") VALUES (?,?,?,?) [msf] SQL for deleting msf.Unit: DELETE FROM "UNIT" WHERE "ID"=? [msf] SQL for updating msf.Unit: UPDATE "UNIT" SET "MSR_ID"=?,"OPLOC_ID"=?,"UNIT_NAME"=? WHERE "ID"=? AND "MSR_ID"=? AND "OPLOC_ID"=? AND "UNIT_NAME"=? [msf] SQL for loading msf.Unit: SELECT "UNIT"."MSR_ID","UNIT"."OPLOC_ID","UNIT"."UNIT_NAME" FROM "UNIT" WHERE "UNIT"."ID"=? [msf] SQL for creating msf.Aircraft: INSERT INTO "AIRCRAFT" ("ID","MSR_ID","UNIT_ID","OPLOC_ID","ACFT_TYPE","ACFT_QTY","UTE_RATE","P LANNED_SORTIES","AVAILABLE_SORTIES","DMPIS_PER_SORTIE","TURN_TIME","ACFT _SPEED","ACFT_COMBAT_RADIUS","NIGHT_CAPABLE","MSN_CAT","CTRY_CODE","SERV ICE") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [msf] SQL for deleting msf.Aircraft: DELETE FROM "AIRCRAFT" WHERE "ID"=? [msf] SQL for updating msf.Aircraft: UPDATE "AIRCRAFT" SET "MSR_ID"=?,"UNIT_ID"=?,"OPLOC_ID"=?,"ACFT_TYPE"=?,"ACFT_QTY"=?,"UTE_RATE "=?,"PLANNED_SORTIES"=?,"AVAILABLE_SORTIES"=?,"DMPIS_PER_SORTIE"=?,"TURN _TIME"=?,"ACFT_SPEED"=?,"ACFT_COMBAT_RADIUS"=?,"NIGHT_CAPABLE"=?,"MSN_CA T"=?,"CTRY_CODE"=?,"SERVICE"=? WHERE "ID"=? AND "MSR_ID"=? AND "UNIT_ID"=? AND "OPLOC_ID"=? AND "ACFT_TYPE"=? AND "ACFT_QTY"=? AND "UTE_RATE"=? AND "PLANNED_SORTIES"=? AND "AVAILABLE_SORTIES"=? AND "DMPIS_PER_SORTIE"=? AND "TURN_TIME"=? AND "ACFT_SPEED"=? AND "ACFT_COMBAT_RADIUS"=? AND "NIGHT_CAPABLE"=? AND "MSN_CAT"=? AND "CTRY_CODE"=? AND "SERVICE"=? [msf] SQL for loading msf.Aircraft: SELECT "AIRCRAFT"."MSR_ID","AIRCRAFT"."UNIT_ID","AIRCRAFT"."OPLOC_ID","AIRCRAFT "."ACFT_TYPE","AIRCRAFT"."ACFT_QTY","AIRCRAFT"."UTE_RATE","AIRCRAFT"."PL ANNED_SORTIES","AIRCRAFT"."AVAILABLE_SORTIES","AIRCRAFT"."DMPIS_PER_SORT IE","AIRCRAFT"."TURN_TIME","AIRCRAFT"."ACFT_SPEED","AIRCRAFT"."ACFT_COMB AT_RADIUS","AIRCRAFT"."NIGHT_CAPABLE","AIRCRAFT"."MSN_CAT","AIRCRAFT"."C TRY_CODE","AIRCRAFT"."SERVICE" FROM "AIRCRAFT" WHERE "AIRCRAFT"."ID"=? [msf] SQL for creating msf.Munition: INSERT INTO "MUNITION" ("ID","MSR_ID","OPLOC_ID","MUN_TYPE","MUN_QTY","STAND_OFF_RANGE") VALUES (?,?,?,?,?,?) [msf] SQL for deleting msf.Munition: DELETE FROM "MUNITION" WHERE "ID"=? [msf] SQL for updating msf.Munition: UPDATE "MUNITION" SET "MSR_ID"=?,"OPLOC_ID"=?,"MUN_TYPE"=?,"MUN_QTY"=?,"STAND_OFF_RANGE"=? WHERE "ID"=? AND "MSR_ID"=? AND "OPLOC_ID"=? AND "MUN_TYPE"=? AND "MUN_QTY"=? AND "STAND_OFF_RANGE"=? [msf] SQL for loading msf.Munition: SELECT "MUNITION"."MSR_ID","MUNITION"."OPLOC_ID","MUNITION"."MUN_TYPE","MUNITIO N"."MUN_QTY","MUNITION"."STAND_OFF_RANGE" FROM "MUNITION" WHERE "MUNITION"."ID"=? [msf] SQL for creating msf.Target: INSERT INTO "TARGET" ("ID","MSR_ID","BE_NUMBER","DMPI","LAT","LON","ELEVATION","PRIORITY","PR EDECESSOR","TGT_GROUP","SEQUENCE","PKG","PKG_PRIORITY","PROB_DAMAGE","ER ROR_PROB_CIRCULAR","ERROR_PROB_DEFLECTION","ERROR_PROB_RANGE","ERROR_RAN GE_BIAS") VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) [msf] SQL for deleting msf.Target: DELETE FROM "TARGET" WHERE "ID"=? [msf] SQL for updating msf.Target: UPDATE "TARGET" SET "MSR_ID"=?,"BE_NUMBER"=?,"DMPI"=?,"LAT"=?,"LON"=?,"ELEVATION"=?,"PRIORIT Y"=?,"PREDECESSOR"=?,"TGT_GROUP"=?,"SEQUENCE"=?,"PKG"=?,"PKG_PRIORITY"=? ,"PROB_DAMAGE"=?,"ERROR_PROB_CIRCULAR"=?,"ERROR_PROB_DEFLECTION"=?,"ERRO R_PROB_RANGE"=?,"ERROR_RANGE_BIAS"=? WHERE "ID"=? AND "MSR_ID"=? AND "BE_NUMBER"=? AND "DMPI"=? AND "LAT"=? AND "LON"=? AND "ELEVATION"=? AND "PRIORITY"=? AND "PREDECESSOR"=? AND "TGT_GROUP"=? AND "SEQUENCE"=? AND "PKG"=? AND "PKG_PRIORITY"=? AND "PROB_DAMAGE"=? AND "ERROR_PROB_CIRCULAR"=? AND "ERROR_PROB_DEFLECTION"=? AND "ERROR_PROB_RANGE"=? AND "ERROR_RANGE_BIAS"=? [msf] SQL for loading msf.Target: SELECT "TARGET"."MSR_ID","TARGET"."BE_NUMBER","TARGET"."DMPI","TARGET"."LAT","T ARGET"."LON","TARGET"."ELEVATION","TARGET"."PRIORITY","TARGET"."PREDECES SOR","TARGET"."TGT_GROUP","TARGET"."SEQUENCE","TARGET"."PKG","TARGET"."P KG_PRIORITY","TARGET"."PROB_DAMAGE","TARGET"."ERROR_PROB_CIRCULAR","TARG ET"."ERROR_PROB_DEFLECTION","TARGET"."ERROR_PROB_RANGE","TARGET"."ERROR_ RANGE_BIAS" FROM "TARGET" WHERE "TARGET"."ID"=? [msf] SQL for creating msf.Weaponeering: INSERT INTO "WEAPONEERING" ("ID","MSR_ID","TGT_ID","ACFT_TYPE","ACFT_QTY","MUN_TYPE","MUN_QTY") VALUES (?,?,?,?,?,?,?) [msf] SQL for deleting msf.Weaponeering: DELETE FROM "WEAPONEERING" WHERE "ID"=? [msf] SQL for updating msf.Weaponeering: UPDATE "WEAPONEERING" SET "MSR_ID"=?,"TGT_ID"=?,"ACFT_TYPE"=?,"ACFT_QTY"=?,"MUN_TYPE"=?,"MUN_QTY"= ? WHERE "ID"=? AND "MSR_ID"=? AND "TGT_ID"=? AND "ACFT_TYPE"=? AND "ACFT_QTY"=? AND "MUN_TYPE"=? AND "MUN_QTY"=? [msf] SQL for loading msf.Weaponeering: SELECT "WEAPONEERING"."MSR_ID","WEAPONEERING"."TGT_ID","WEAPONEERING"."ACFT_TYP E","WEAPONEERING"."ACFT_QTY","WEAPONEERING"."MUN_TYPE","WEAPONEERING"."M UN_QTY" FROM "WEAPONEERING" WHERE "WEAPONEERING"."ID"=? [msf] Begin transaction Unmarshalling Mission Scheduling Request [msf] Insert Mission Scheduling Request ... [msf] Castor: Creating msf.MissionSchedulingRequest (1) [msf] Insert OpLocs ... [msf] Castor: Creating msf.OpLoc (null) [msf] Insert unit FKs... 2 OpLocList value = 1 [msf] Castor: Creating msf.Unit (1) [msf] Error creating msf.Unit, SQL : INSERT INTO "UNIT" ("ID","MSR_ID","OPLOC_ID","UNIT_NAME") VALUES (?,?,?,?) [msf] org.exolab.castor.jdo.PersistenceException: Nested error: java.sql.SQLException: ORA-01400: cannot insert NULL into ("MSF"."UNIT"."OPLOC_ID") [msf] java.sql.SQLException: ORA-01400: cannot insert NULL into ("MSF"."UNIT"."OPLOC_ID") [msf] at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:180) [msf] at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208) [msf] at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543) [msf] at oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1451) [msf] at oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:862) [msf] at oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleStatement.java: 1846) [msf] at oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatement.java:1 771) [msf] at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement. java:2361) [msf] at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedS tatement.java:422) [msf] at org.exolab.castor.jdo.engine.SQLEngine.create(Unknown Source) [msf] at org.exolab.castor.persist.ClassMolder.create(Unknown Source) [msf] at org.exolab.castor.persist.LockEngine.create(Unknown Source) [msf] at org.exolab.castor.persist.TransactionContext.create(Unknown Source) [msf] at org.exolab.castor.jdo.engine.DatabaseImpl.create(Unknown Source) [msf] at Msf.run(Unknown Source) [msf] at Msf.main(Unknown Source) I've included the additions to my OpLoc class where I set Unit (and Munition) using The following line: vUnit.setOploc(this); without any change in behavior. I think the problem may lie in may unmarshalling code. Pls take a look and see what you think. I've already included snippets of the mapping file, .xsd file, and so forth at http://castor.exolab.org/list-archive/msg23192.html Here is my marhsallng code.. import javax.sql.*; import java.util.*; import java.io.*; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.DriverManager; import org.xml.sax.ContentHandler; import org.exolab.castor.jdo.*; import org.exolab.castor.util.*; import org.exolab.castor.xml.*; import org.exolab.castor.mapping.Mapping; import org.apache.xml.serialize.*; import msf.*; public class Msf { // database configuration file public static final String DatabaseFile = "database.xml"; // mapping file public static final String MappingFile = "mapping.xml"; private Mapping _mapping; private JDO _jdo; private MissionSchedulingRequest _missionSchedulingRequest; public void Prepenv( PrintWriter writer ) throws Exception { // Load the mapping file _mapping = new Mapping( getClass().getClassLoader() ); _mapping.setLogWriter( writer ); _mapping.loadMapping( getClass().getResource( MappingFile ) ); _jdo = new JDO(); _jdo.setLogWriter( writer ); _jdo.setConfiguration( getClass().getResource( DatabaseFile ).toString() ); _jdo.setDatabaseName( "webtas" ); } public void run( PrintWriter writer ) throws Exception { Database db; MissionSchedulingRequest missionSchedulingRequest; OpLoc oploc; Unit unit; Aircraft aircraft; Munition munition; Target target; Weaponeering weaponeering; QueryResults results; db = _jdo.getDatabase(); writer.println( "Begin transaction" ); System.out.println("Unmarshalling Mission Scheduling Request"); _missionSchedulingRequest = MissionSchedulingRequest.unmarshal(new FileReader("request_trunc.xml")); // Insert request db.begin(); writer.println( "Insert Mission Scheduling Request ..." ); db.create(_missionSchedulingRequest); db.commit(); // Insert Operating Locations (OpLocs) OpLoc[] opLocList = _missionSchedulingRequest.getOpLoc(); for (int g=0; g < opLocList.length; g++) { writer.println( "Insert OpLocs ..." ); opLocList[g].setMissionSchedulingRequest(_missionSchedulingRequest); db.begin(); db.create(opLocList[g]); db.commit(); writer.println( "Insert unit FKs..." ); Unit[] unitList = opLocList[g].getUnit(); for (int h=0; h < unitList.length; h++) { OpLoc unitOpLoc = opLocList[g]; System.out.println("2 OpLocList value = " + opLocList[g].getId()); unitList[h].setOpLoc(unitOpLoc); unitList[h].setMissionSchedulingRequest(_missionSchedulingRequest); db.begin(); db.create(unitList[h]); db.commit(); writer.println( "Insert aircraft FKs..."); Aircraft[] aircraftList = unitList[h].getAircraft(); for (int a = 0; a < aircraftList.length; a++) { Unit aircraftUnit = unitList[h]; aircraftList[a].setUnit(aircraftUnit); aircraftList[a].setOpLoc(unitOpLoc); aircraftList[a].setMissionSchedulingRequest(_missionSchedulingRequest); db.begin(); db.create(aircraftList[a]); db.commit(); } } writer.println( "Insert munition FKs..." ); Munition[] munitionList = opLocList[g].getMunition(); db.begin(); for (int i=0; i < munitionList.length; i++) { OpLoc munitionOpLoc = opLocList[g]; munitionList[i].setOpLoc(munitionOpLoc); munitionList[i].setMissionSchedulingRequest(_missionSchedulingRequest); db.create(munitionList[i]); } db.commit(); } //Insert Units Unit[] unitList = _missionSchedulingRequest.getUnit(); db.begin(); for (int j=0; j < unitList.length; j++) { writer.println( "Insert Units ..." ); db.create(unitList[j]); } db.commit(); // Insert Aircraft Aircraft[] aircraftList = _missionSchedulingRequest.getAircraft(); db.begin(); for (int m=0; m < aircraftList.length; m++) { writer.println( "Insert aircraft ..." ); db.create(aircraftList[m]); } db.commit(); // Insert Munition Munition[] munitionList = _missionSchedulingRequest.getMunition(); db.begin(); for (int n=0; n < munitionList.length; n++) { writer.println( "Insert munitions ..." ); db.create(munitionList[n]); } db.commit(); // Insert Targets Target[] tgtList = _missionSchedulingRequest.getTarget(); for (int p=0; p < tgtList.length; p++) { writer.println( "Insert targets ..." ); tgtList[p].setMissionSchedulingRequest(_missionSchedulingRequest); db.begin(); db.create(tgtList[p]); db.commit(); writer.println( "Insert target weaponeering FKs..." ); Weaponeering[] weaponeeringList = tgtList[p].getWeaponeering(); db.begin(); for (int q=0; q < weaponeeringList.length; q++) { Target weaponeeringTarget = tgtList[p]; weaponeeringList[q].setTarget(weaponeeringTarget); weaponeeringList[q].setMissionSchedulingRequest(_missionSchedulingReques t); db.create(weaponeeringList[q]); } db.commit(); } // Insert Weaponeering Weaponeering[] weaponList = _missionSchedulingRequest.getWeaponeering(); db.begin(); for (int r=0; r < weaponList.length; r++) { writer.println( "Insert weaponeering ..." ); db.create(weaponList[r]); } db.commit(); db.close(); } public static void main( String[] args ) { PrintWriter writer; Msf msf = new Msf(); writer = new Logger( System.out ).setPrefix( "msf" ); try { msf.Prepenv( writer ); msf.run( writer ); } catch ( Exception except ) { writer.println( except ); except.printStackTrace( writer ); } } } -----Original Message----- From: Bruce Snyder [mailto:[EMAIL PROTECTED]] Sent: Friday, January 31, 2003 5:04 PM To: [EMAIL PROTECTED] Subject: Re: [castor-dev] Use of Key-generated id values This one time, at band camp, chavan said: c>Hey , c>Whenever you add the child to the collection in parent object, set c>the c>parent of hte child like child.setParent(this); (i can't believe i am c>writing that like 4th time in a day). That will make it work. Will post c>example if that don't make it work for you. There's an example of this in the JDO examples (src/examples/jdo and src/examples/myapp). See src/examples/myapp/Category.java line# 58. Bruce -- perl -e 'print unpack("u30","<0G)U8V4\@4VYY9&5R\"F9E<G)E=\$\!F<FEI+F-O;0\`\`");' ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev ----------------------------------------------------------- If you wish to unsubscribe from this mailing, send mail to [EMAIL PROTECTED] with a subject of: unsubscribe castor-dev