[Seaside] Seaside, Omnibase, OmnibaseSupport - markDirty failing

Bruno BB (st) smalltalk at adinet.com.uy
Sun Feb 19 18:44:11 UTC 2006


Wilkes Joiner escribió:

>I'm learning to use Seaside with Omnibase and am having some issues. 
>I'm getting a "ODBError: Object is not persistent or is a part of
>composite persistent object" when calling markDirty on an object.
>  
>
This is because that object it was not make persistent.
I mean, that do not receive the #makePersistent: message.
Example:

bank := Bank new.
accout := Account new.
bank addAccount: account.
transaction makePersistent: bank.
transaction commit.

So, "bank" is a persistent object but "account" is a part of composite 
persistent object.
After recover "bank" from repository you can not send #markDirty to 
"account".
Only bank can receive #markDirty.

What to do ?

bank := Bank new.
accout := Account new.
bank addAccount: account.
transaction makePersistent: bank;
        makePersistent: account.  " NOW Account is a main persistent 
object (NOT a part of composite persistent object) "
transaction commit.

Regards Bruno



More information about the Seaside mailing list