Hi, I'm using SandstoneDb for a project... and I have this (one-to-many) scenario:
a) Product as Parts b) a Part can be owner by a Product, or can be orphan
so, I have two roots: Product and Part
well, by design, Sandstone does not allow me to make a recursive commit, and I have to make that commit by hand, something like this:
self product partsDo: [ :each | each isNew ifTrue: [ each commit ]. self product commit.
but... I need this behaivor in many parts of my environment, so I rewrited #commit, this way:
Product>>commit self partsDo: [ :each | each isNew ifTrue: [ each commit ]. super commit.
My question is: is this design right? Is there another -cleaner- way to do this?
Thanks in advance, Esteban
pd: maybe #commitWithRelations is better than overwrite commit?
Hi, I'm using SandstoneDb for a project... and I have this (one-to-many) scenario:
a) Product as Parts b) a Part can be owner by a Product, or can be orphan
so, I have two roots: Product and Part
well, by design, Sandstone does not allow me to make a recursive commit, and I have to make that commit by hand, something like this:
self product partsDo: [ :each | each isNew ifTrue: [ each commit ]. self product commit.
but... I need this behaivor in many parts of my environment, so I rewrited #commit, this way:
Product>>commit self partsDo: [ :each | each isNew ifTrue: [ each commit ]. super commit.
My question is: is this design right? Is there another -cleaner- way to do this?
Thanks in advance, Esteban
I'd say that's not a good approach. The problem is you're adding new Parts to a Product, if Part can stand alone, then save them prior to creating the relationship. Relationships are between committed objects. You're trying to treat the Part as an aggreagte of Product when it clearly isn't if a Part can exist without a Product.
Ramon Leon
Hey Ramon... Just wondering, only slightly off topic, if you can save the class itself with SandstoneDb? I am doing some dynamic compilation, and was wondering if I can use SandstoneDb to save changes to the class without saving the entire image, or if I should just save the image when I add new methods or update class side variables?
Just wondering if there is a more "compact" way of saving just one class instead of the entire image?
Rob
Hey Ramon...
Just wondering, only slightly off topic, if you can save the class itself with SandstoneDb? I am doing some dynamic compilation, and was wondering if I can use SandstoneDb to save changes to the class without saving the entire image, or if I should just save the image when I add new methods or update class side variables?
Just wondering if there is a more "compact" way of saving just one class instead of the entire image?
Rob
No, you'll need to save your image, SandstoneDb just saves simple objects.
Ramon Leon http://onsmalltalk.com
Thanks...the more I thought about it, the more complicated I realized this questions was; if you could "selectively save" a class and sync it up with any stored simple objects, you really wouldn't need much else at all for a lot of applications! Thanks again,
Rob
On Wed, Aug 27, 2008 at 3:37 AM, Ramon Leon ramon.leon@allresnet.comwrote:
Hey Ramon...
Just wondering, only slightly off topic, if you can save the class itself with SandstoneDb? I am doing some dynamic compilation, and was wondering if I can use SandstoneDb to save changes to the class without saving the entire image, or if I should just save the image when I add new methods or update class side variables?
Just wondering if there is a more "compact" way of saving just one class instead of the entire image?
Rob
No, you'll need to save your image, SandstoneDb just saves simple objects.
Ramon Leon http://onsmalltalk.com
squeak-dev@lists.squeakfoundation.org