Re: update setting FK to null

2003-03-05 Thread casterx
Tim,

OJB after .9.7 started to set the FK to null if the actual reference object
is null at the time of storage. This behavior broke my programs and I had to
comment out that line from the assertFK...() function inside
PersistaeceBrokerSingleVM.

I suggested making this an optional trait, to be set in the repository on
the reference object, but haven't heard anything from the developers.

Caster
- Original Message -
From: Tim Drury [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Tuesday, March 04, 2003 5:32 PM
Subject: Re: update setting FK to null



 I forgot to mention I'm running 0.9.9.  Here is a little more info.  From
 my log:

 [17:08:04,955,OJBORMManager] DEBUG save: class=common.model.Note
 [17:08:04,955,OJBORMManager] DEBUG save:
 o=[Note:id=59,code=NOTE79,subcode=foo,ident=ID2564,desc=this is a debug
 note,ownerId=74,docId=16]
 [17:08:04,965,JdbcAccessImpl] ERROR SQLException during the execution of
 the update (for a common.model.Note): ERROR:  ExecUpdate: Fail to add null
 value in not null attribute documentid

 Note is the object that ties an Invoice and a Person object together in an
 M:N relationship.  It's PK is id=59.  It has two foreign keys, ownerId=74
 points to the Person and docId=16 points to the Invoice.  Upon saving, it
 tries to put null into the DOCUMENTID database column.  Here is my p6spy
 log:

 1046815684955|0|0|statement|SELECT

LASTMODIFIED,DOCUMENTID,TIMECREATED,IDENTIFIER,SUBCODE,OWNERID,CODE,DESCRIPT
ION,ID
 FROM shipnote WHERE ID = ? |SELECT

LASTMODIFIED,DOCUMENTID,TIMECREATED,IDENTIFIER,SUBCODE,OWNERID,CODE,DESCRIPT
ION,ID
 FROM shipnote WHERE ID = '59'

 1046815684965|0|0|statement|UPDATE shipnote SET TIMECREATED=?,
 LASTMODIFIED=?, CODE=?, SUBCODE=?, IDENTIFIER=?, DESCRIPTION=?, OWNERID=?,
 DOCUMENTID=? WHERE ID = ? |UPDATE shipnote SET TIMECREATED='2003-03-04
 17:08:04.154', LASTMODIFIED='2003-03-04 17:08:04.154', CODE='NOTE79',
 SUBCODE='foo', IDENTIFIER='ID2564', DESCRIPTION='this is a debug note',
 OWNERID='', DOCUMENTID='' WHERE ID = '59'

 I also tried making a trivial change to the Invoice object and save the
 invoice, but got the same docId=null error for the note even though I had
 not made any changes to the note object.

 Any ideas (any!) would be appreciated,

 -tim


 
  When I update the link object (the object between to others in an M:N
  relationship), the FKs to the outer objects are being set to null in
  outgoing SQL according to p6spy.  Am I forgetting to do something?  The
  code is the typical,
 
  broker.beginTransaction();
  broker.store(o);
  broker.commitTransaction();
 
  everything works fine when creating the objects the first time, only
  updates show this problem.
 
  I thought there was something on the list earlier about this but, alas,
  the archives (both jakarta and db) don't seem be getting updated since
  mid February.
 
  Thanks,
 
  -tim




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



Re: update setting FK to null

2003-03-05 Thread Tim Drury

Caster - thank you.  I had set in the repository.xml not to auto-retrieve
the linked objects for Note since this would have caused a circular
reference.  While my FK IDs were correct and not null, the actual object
references were null so, as you said, it was trying to put null into the
database.  I'm not sure I understand this behavior either, but I don't
want to have my own patched ojb to maintain so I'll live with it.

I set auto-retrieve to true and the test case worked.  I think the correct
way to do this is using proxies since I don't really want to load the
linked objects because they have already been loaded.

Thanks again,

-tim


 Tim,

 OJB after .9.7 started to set the FK to null if the actual reference
 object is null at the time of storage. This behavior broke my programs
 and I had to comment out that line from the assertFK...() function
 inside
 PersistaeceBrokerSingleVM.

 I suggested making this an optional trait, to be set in the repository
 on the reference object, but haven't heard anything from the developers.

 Caster
 - Original Message -
 From: Tim Drury [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Tuesday, March 04, 2003 5:32 PM
 Subject: Re: update setting FK to null



 I forgot to mention I'm running 0.9.9.  Here is a little more info.
 From my log:

 [17:08:04,955,OJBORMManager] DEBUG save: class=common.model.Note
 [17:08:04,955,OJBORMManager] DEBUG save:
 o=[Note:id=59,code=NOTE79,subcode=foo,ident=ID2564,desc=this is a
 debug note,ownerId=74,docId=16]
 [17:08:04,965,JdbcAccessImpl] ERROR SQLException during the execution
 of the update (for a common.model.Note): ERROR:  ExecUpdate: Fail to
 add null value in not null attribute documentid

 Note is the object that ties an Invoice and a Person object together
 in an M:N relationship.  It's PK is id=59.  It has two foreign keys,
 ownerId=74 points to the Person and docId=16 points to the Invoice.
 Upon saving, it tries to put null into the DOCUMENTID database column.
  Here is my p6spy log:

 1046815684955|0|0|statement|SELECT

 LASTMODIFIED,DOCUMENTID,TIMECREATED,IDENTIFIER,SUBCODE,OWNERID,CODE,DESCRIPT
 ION,ID
 FROM shipnote WHERE ID = ? |SELECT

 LASTMODIFIED,DOCUMENTID,TIMECREATED,IDENTIFIER,SUBCODE,OWNERID,CODE,DESCRIPT
 ION,ID
 FROM shipnote WHERE ID = '59'

 1046815684965|0|0|statement|UPDATE shipnote SET TIMECREATED=?,
 LASTMODIFIED=?, CODE=?, SUBCODE=?, IDENTIFIER=?, DESCRIPTION=?,
 OWNERID=?, DOCUMENTID=? WHERE ID = ? |UPDATE shipnote SET
 TIMECREATED='2003-03-04 17:08:04.154', LASTMODIFIED='2003-03-04
 17:08:04.154', CODE='NOTE79', SUBCODE='foo', IDENTIFIER='ID2564',
 DESCRIPTION='this is a debug note', OWNERID='', DOCUMENTID='' WHERE ID
 = '59'

 I also tried making a trivial change to the Invoice object and save
 the invoice, but got the same docId=null error for the note even
 though I had not made any changes to the note object.

 Any ideas (any!) would be appreciated,

 -tim


 
  When I update the link object (the object between to others in an
 M:N relationship), the FKs to the outer objects are being set to
 null in outgoing SQL according to p6spy.  Am I forgetting to do
 something?  The code is the typical,
 
  broker.beginTransaction();
  broker.store(o);
  broker.commitTransaction();
 
  everything works fine when creating the objects the first time, only
 updates show this problem.
 
  I thought there was something on the list earlier about this but,
 alas, the archives (both jakarta and db) don't seem be getting
 updated since mid February.
 
  Thanks,
 
  -tim




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




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



Re: update setting FK to null

2003-03-04 Thread Tim Drury

I forgot to mention I'm running 0.9.9.  Here is a little more info.  From
my log:

[17:08:04,955,OJBORMManager] DEBUG save: class=common.model.Note
[17:08:04,955,OJBORMManager] DEBUG save:
o=[Note:id=59,code=NOTE79,subcode=foo,ident=ID2564,desc=this is a debug
note,ownerId=74,docId=16]
[17:08:04,965,JdbcAccessImpl] ERROR SQLException during the execution of
the update (for a common.model.Note): ERROR:  ExecUpdate: Fail to add null
value in not null attribute documentid

Note is the object that ties an Invoice and a Person object together in an
M:N relationship.  It's PK is id=59.  It has two foreign keys, ownerId=74
points to the Person and docId=16 points to the Invoice.  Upon saving, it
tries to put null into the DOCUMENTID database column.  Here is my p6spy
log:

1046815684955|0|0|statement|SELECT
LASTMODIFIED,DOCUMENTID,TIMECREATED,IDENTIFIER,SUBCODE,OWNERID,CODE,DESCRIPTION,ID
FROM shipnote WHERE ID = ? |SELECT
LASTMODIFIED,DOCUMENTID,TIMECREATED,IDENTIFIER,SUBCODE,OWNERID,CODE,DESCRIPTION,ID
FROM shipnote WHERE ID = '59'

1046815684965|0|0|statement|UPDATE shipnote SET TIMECREATED=?,
LASTMODIFIED=?, CODE=?, SUBCODE=?, IDENTIFIER=?, DESCRIPTION=?, OWNERID=?,
DOCUMENTID=? WHERE ID = ? |UPDATE shipnote SET TIMECREATED='2003-03-04
17:08:04.154', LASTMODIFIED='2003-03-04 17:08:04.154', CODE='NOTE79',
SUBCODE='foo', IDENTIFIER='ID2564', DESCRIPTION='this is a debug note',
OWNERID='', DOCUMENTID='' WHERE ID = '59'

I also tried making a trivial change to the Invoice object and save the
invoice, but got the same docId=null error for the note even though I had
not made any changes to the note object.

Any ideas (any!) would be appreciated,

-tim



 When I update the link object (the object between to others in an M:N
 relationship), the FKs to the outer objects are being set to null in
 outgoing SQL according to p6spy.  Am I forgetting to do something?  The
 code is the typical,

 broker.beginTransaction();
 broker.store(o);
 broker.commitTransaction();

 everything works fine when creating the objects the first time, only
 updates show this problem.

 I thought there was something on the list earlier about this but, alas,
 the archives (both jakarta and db) don't seem be getting updated since
 mid February.

 Thanks,

 -tim




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