When OJB performs the insert/update, it uses the value of "id" from the 
Lu_process_status object that's stored in the "lu_process_status" field for the value 
of imports.status_id.  If the field "lu_process_status" is null when you ask ojb to 
store the object, then ojb will populate imports.status_id with a null value.

In your code, you're setting status_id on the "newImport" to "Q".  However, before you 
store "newImport", you need to ensure that the field "lu_process_status" contains a 
reference to the object that represents a status of "Q".

Ron Gallagher
Atlanta, GA
[EMAIL PROTECTED]


> 
> From: C F <[EMAIL PROTECTED]>
> Date: 2003/03/04 Tue AM 10:53:29 EST
> To: [EMAIL PROTECTED]
> Subject: Why is OJB inserting null on one field?
> 
> 
> Hello,
> 
> I'm about 90% sure this problem started happening after I upgraded some stuff (OJB, 
> PostgreSQL and JDBC driver).  What's happening is that for some reason, on 
> inserting, OJB seems to be inserting everything correctly except for my 'status_id' 
> field and I have no idea why.  Below, I have a code sample, the SQL statement that 
> is being received by the database and repository defs.  Notice that in the insert 
> statement, the status_id field is null despite being explicitly set by 
> newImport.setStatus_id("Q")...
> 
>    Import newImport = new Import();
>    newImport.setUser_id(user.getId());
>    newImport.setFile_size(new BigDecimal(file.getFileSize()));
>    newImport.setIn_file(file.getFileName());
>    newImport.setOut_file(outFile.getName());
>    newImport.setStatus_id("Q");
>      try
>   {
>    tx = odmg.newTransaction();
>    tx.begin();
>    tx.lock(layerImport, tx.WRITE);
>    tx.commit();
>   }
> 
> 
> ..... the resulting SQL statement is....
> 
> INSERT INTO imports 
> (file_format,file_size,id,in_file,out_file,request_date,status_id,user_id) VALUES ( 
> null, 3100237, 21, 'Exports.zip', '0001_60784.zip', null, null, 1 )
> 
> 
> ....Object Defs....
> 
> <class-descriptor class="Import" table="imports">
> <field-descriptor id="1" name="file_format" column="file_format" 
> jdbc-type="VARCHAR"></field-descriptor>
> <field-descriptor id="2" name="file_size" column="file_size" 
> jdbc-type="NUMERIC"></field-descriptor>
> <field-descriptor id="3" name="id" column="id" jdbc-type="INTEGER" primarykey="true" 
> autoincrement="true"></field-descriptor>
> <field-descriptor id="4" name="in_file" column="in_file" 
> jdbc-type="VARCHAR"></field-descriptor>
> <field-descriptor id="5" name="out_file" column="out_file" 
> jdbc-type="VARCHAR"></field-descriptor>
> <field-descriptor id="6" name="request_date" column="request_date" 
> jdbc-type="TIMESTAMP"></field-descriptor>
> <field-descriptor id="7" name="status_id" column="status_id" 
> jdbc-type="VARCHAR"></field-descriptor>
> <field-descriptor id="8" name="user_id" column="user_id" 
> jdbc-type="INTEGER"></field-descriptor>
> <reference-descriptor name="lu_process_status" class-ref="Lu_process_status" 
> auto-retrieve="true" auto-update="false" auto-delete="false">
> <foreignkey field-id-ref="7" />
> </reference-descriptor>
> </class-descriptor>
> 
> 
> <class-descriptor class="Lu_process_status" table="lu_process_status">
> <field-descriptor id="1" name="id" column="id" jdbc-type="VARCHAR" 
> primarykey="true"></field-descriptor>
> <field-descriptor id="2" name="name" column="name" 
> jdbc-type="VARCHAR"></field-descriptor>
> <collection-descriptor name="exports" element-class-ref="Export" 
> auto-retrieve="true" auto-update="false" auto-delete="false">
> <inverse-foreignkey field-id-ref="9" />
> </collection-descriptor>
> <collection-descriptor name="imports" element-class-ref="Import" 
> auto-retrieve="true" auto-update="false" auto-delete="false">
> <inverse-foreignkey field-id-ref="7" />
> </collection-descriptor>
> </class-descriptor>
> 
> -----------------------------------------------------------------------------------------
> 
> There's nothing wrong with my 'Import' bean.  After setting the Status_id, I can 
> System.out.println(newImport.getStatus_id()) just fine.
> 
> I'm using OJB from CVS a few days ago (0.9.9+) and PostgreSQL 7.3.2 with their JDBC 
> 7.3 driver.
> 
> Any ideas??
> 
> Thanks!



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to