Re: Inserting records into to-many relationship
Re: Inserting records into to-many relationship
- Subject: Re: Inserting records into to-many relationship
- From: Tanmoy Roy <email@hidden>
- Date: Tue, 30 Aug 2005 15:55:52 +0530
Hi Florijan,
Thanks a lot for the help. I followed exactly what you said and it
WORKED !!!! Our app is running fine now...
Thanks,
Tanmoy.
On 8/15/05, Florijan Stamenkovic <email@hidden> wrote:
> > Hi all,
> > Thanks for the help. But I am still stuck with the problem. What I am
> > doing is I am declaring eoEditingC=
> > this.session().defaultEditingContext() and I am inserting all the EO
> > in it. I am not using any other EC for that matter. I have also added
> > the EO to the EC before using the addObjectTO... function. Now it is
> > giving me another exception saying "Cannot insert Object which is
> > already there in the database". I am stumped again. What am I doing
> > wrong now??
>
> You can use many editing contexts, and many different kinds of them.
> The basics are covered in a quite understandable way in Joshua Marker's
> WO5 for Mac OSX (Visual QuickPro Guide). You however do not have to, so
> wait until you gain some experience with handling just one.
>
> Inserting objects into the EC:
> You only do that with new objects, that were not saved to the database
> yet.
>
> If you already have records in the database (say some Author records),
> and you fetch them (in a certain EC, the default in your case), you can
> not insert them again. They are already contained in the editing
> context and you can relate other objects (that are inserted / fetched
> into the same EC) to them using addObjectToBothSides...
>
> But to avoid trouble, use a static method
> createAndInsertInstance(EOEditingContext ec, String entityName) to
> create new objects (it is in the EOUtilities class). That way you know
> they are inserted into an editing context as soon as they are created.
> There will be some casting involved if you are generating java classes
> for your different entities.
>
> Example relating an existing author record with a new book record
>
> //fetch some authors
> EOFetchSpecification fs = new EOFetchSpecification("Author", null,
> null) //qualifiers and sort orderings are null, see API
> NSArray authors =
> session().defaultEditingContext().objectsWithFetchSpecification(fs);
>
> //create a new book
> Book aBook =
> (Book)EOUtilities.CreateAndInsertInstance(session().defaultEditingContex
> t(), "Book");
>
> //take the first author available
> if(authors.count() == 0)
> return _doSomethingPeculiar();
> Author firstAuthor = (Author)authors.objectAtIndex(0);
>
> //relate the two
> aBook.addObjectToBothSidesOfRelationshipWithKey(firstAuthor, "Author");
>
> //save the new book and the relationships
> session().defaultEditingContext().saveChanges();
>
>
> not sure about all method signatures being correct though. but that is
> the general drift, just to show the flow of things. if you are still
> having problems after using this typical flow, be sure to check you
> model definition. That one should be good however if you are doing an
> Apple or so tutorial.
>
> Cheers
> Flor
>
>
--
Best,
Tanmoy
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden