Hi Sabine, I'm trying to understand your problem. As far as I see, you have:
- A set of Countries - A set of Trips Why Country is transient? When you declare an attribute as *transient*, that means its value will not be persisted, then when you retrieve it again, you will have country = nil in your trip (which I imagine is an error). How I would solve this problem? Well... both Trip and Country has to be persistent (both #isVoyageRoot should answer true). That should be enough... Now... you probably want your list of countries to be constant inside your app (since they are basically the same 150+others new each year-some no-more-there each year). This is like an enumeration (Country = #(Argentine France Germany ...) if this is your case, what you can do is to declare a different kind of accessor (in the same way you do it for magritte + seaside): something like this: Trip class>>#mongoCountry <mongoDescription> ^ VOMongoToOneDescription new attributeName: 'country'; accessor: (MAPluggableAccessor read: [ :trip | trip country name ] write: [ :trip :value | Country countryWithName: value ]); yourself this way you can keep in the database whatever value you want (an ISO, an internet extension, etc.) I hope this solve your problem :) Esteban On Jul 29, 2013, at 7:01 PM, Sabine Knöfel <sabine.knoe...@gmail.com> wrote: > Hi esteban, Thank you for answering. The Problem persists i was waiting for > your answer and it would be great if you could answer my Last Post in the > Forum (how to tell voyage the "boundary"). I am also in vacation now and back > mid of next week. Sorry for the spelling i write from Mobile phone. Sabine > > Am 29.07.2013 15:13 schrieb "EstebanLM [via Smalltalk]" <[hidden email]>: > Hi Sabine, > > I'm really sorry, I just went on vacations when you sent this mail :( > > Is this problem persisting? > Did you reach a solution? > Can I help you with something? > > Esteban > > > On Jul 19, 2013, at 12:56 PM, Sabine Knöfel <[hidden email]> wrote: > >> Hi Esteban, >> >> thanks! >> >> I think the solution of Bernat will not be enough for me. >> I added the class methods isVoyageRoot to the root objects (like trip, >> country and so on). >> >> But I have instances which should never be persistent, e.g. the >> country I mentioned. The Country has currencies and expense rates and >> this is a lot of stuff...this should be only transient in the image. >> >> The transient country is referenced by persistent instances of trip. >> (countrie does naturally not point to trips) >> >> Trip (persistant) -> Country (transient) >> >> If I try to save a trip, voyage at some point enters >> >>rawReference: description: >> and there, it looks whether anObject (a country) isNew: >> isNew means the other object, the country has an _id (mongo id). >> >> The country does not have an id and for this reason, voyage tries to >> make it persistent although its class has isVogageRoot false. >> And than the system enters a point where it tries to make so many >> objects persistent that the image does not respond anymore. >> >> So, my question is: is it possible to define >> "In class trip, there is an inst var country -> voyage please save >> only a symbol here" >> and >> "voyage, if loading a trip, for inst var country, do shting" >> >> Sure, I could save symbols within the trips country inst var all the time >> and get the country it if needed, but it would be nicer if voyage coud >> do that for me .-) >> >> Sabine >> >> >> >> >> >> On Fri, Jul 19, 2013 at 11:52 AM, EstebanLM [via Smalltalk] >> <<a >> href="x-msg://4592/user/SendEmail.jtp?type=node&node=4699517&i=0" >> target="_top" rel="nofollow" link="external">[hidden email]> wrote: >> >> > Hi Sabine, >> > >> > If Bernat help is not enough, I would like to have some more insight on >> > your >> > problem, so If you can put here a better description of your model and the >> > problem you are having, I will have a look :) >> > >> > Esteban >> > >> > On Jul 19, 2013, at 10:42 AM, Bernat Romagosa <[hidden email]> wrote: >> > >> > Hi Sabine! >> > >> > If you want an object to be referenced by another, and not embedded in it, >> > you need to give that object root entity. As a root, the object will have >> > a >> > collection of its own, and will be referenced by other objects by id. If >> > the >> > object is not root, it will be embedded inside the referring object as a >> > property. >> > >> > So, to be safe, always set #isVoyageRoot to return true at class side of >> > all >> > objects you don't want to have embedded. In general, "big enough" objects >> > who are referenced by different objects should be root. >> > >> > In my case, I had a centre which had users which had centres. Users also >> > had >> > projects, and projects also had users. Big mess, I know. Besides that, all >> > users, centres and projects had profiles. My solution was to make centres, >> > projects and users be roots, and let only the profiles be embedded. >> > >> > I hope this helped! >> > >> > Bernat. >> > >> > >> > 2013/7/19 Sabine Knöfel <[hidden email]> >> >> >> >> Hi Esteban, >> >> >> >> yes, now the Rectangle Example works after doing the reset. >> >> >> >> But saving my model still leads to a non responding image because >> >> Voyage is trying to write json for all model stuf deep deep deep and >> >> circular. Perhaps same like: >> >> http://forum.world.st/Voyage-Circular-references-td4691940.html#a4699436 >> >> >> >> >> I dont know anything about Magritte (yet) and I need a hint what to >> >> define in my model so that it stops creating json at certain points >> >> and creates only e.g. a Symbol. >> >> >> >> Example: My model instance of trip has a connection to an instance of >> >> country. The country should not be written in json with all its >> >> definitions. Voyage should only write e.g. #germany in the json and >> >> later, when getting the instance back from the database, I want to >> >> reassign the trip to the country. >> >> >> >> I already implemented this stuff when working witk Mongotalk the last >> >> months and it worked fine. But my question yesterday: >> >> >> >> http://forum.world.st/MongoDB-open-close-in-production-singleton-or-not-td4699322.html >> >> lead to my impression that I should use voyage. >> >> >> >> >> So, how can I define the "borders"? >> >> >> >> Sabine >> >> >> >> On Thu, Jul 18, 2013 at 7:45 PM, EstebanLM [via Smalltalk] >> >> <[hidden email]> wrote: >> >> >> >> > Hi Sabine, >> >> > >> >> > Probably you do not missed anything. >> >> > Probably I missed to update the voyage configuration :) >> >> > >> >> > can you try doing >> >> > >> >> > VOMongoRepository allInstancesDo: #reset. >> >> > >> >> > before trying again? >> >> > >> >> > Cheers, >> >> > Esteban >> >> > >> >> > On Jul 18, 2013, at 6:31 PM, Sabine Knöfel <[hidden email]> wrote: >> >> >> >> > >> >> >> I found this: >> >> >> http://smallworks.eu/web/blog/2013-06-14-voyage-the-adventure >> >> >> >> >> >> Chapter "Enhancing storage" >> >> >> But if I add the 3+1 methods to Rectangle, and save it again, the json >> >> >> did >> >> >> not change. >> >> >> >> >> >> Did I miss something? >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> -- >> >> >> View this message in context: >> >> >> http://forum.world.st/Voyage-Circular-references-tp4691940p4699436.html >> >> >> Sent from the Pharo Smalltalk Users mailing list archive at >> >> >> Nabble.com. >> >> >> >> >> > >> >> > >> >> > >> >> > >> >> > ________________________________ >> >> > If you reply to this email, your message will be added to the >> >> > discussion >> >> > below: >> >> > http://forum.world.st/Voyage-Circular-references-tp4691940p4699443.html >> >> > To unsubscribe from Voyage: Circular references, click here. >> >> >> > NAML >> >> >> >> ________________________________ >> >> View this message in context: Re: Voyage: Circular references >> >> >> >> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. >> > >> > >> > >> > >> > -- >> > Bernat Romagosa. >> > >> > >> > >> > >> > ________________________________ >> > If you reply to this email, your message will be added to the discussion >> > below: >> > http://forum.world.st/Voyage-Circular-references-tp4691940p4699516.html >> > To unsubscribe from Voyage: Circular references, click here. >> > NAML >> View this message in context: Re: Voyage: Circular references >> Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com. > > > > If you reply to this email, your message will be added to the discussion > below: > http://forum.world.st/Voyage-Circular-references-tp4691940p4701282.html > To unsubscribe from Voyage: Circular references, click here. > NAML > > View this message in context: Re: Voyage: Circular references > Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.