Hola Hugo,

Bienvenido!

If you are using the EOGenerate templates for your EO classes you'll also find 
this code is generated for you. For example in my _Person.java class:

  public static com.wowodc.model.Person createPerson(EOEditingContext 
editingContext) {
    com.wowodc.model.Person eo = (com.wowodc.model.Person) 
EOUtilities.createAndInsertInstance(editingContext, _Person.ENTITY_NAME);    
    return eo;
  }

Your method to create a user then becomes User.createUser(ec);

Saludos,
David

On 2012-07-12, at 2:58 PM, Louis Demers wrote:

> 
> On 2012-07-12, at 2:46 PM, Hugo Cambero wrote:
> 
>> Hi Everybody
>> 
>> My name is Hugo, I'm from Mexico. I have been developing using WebObjects 
>> and Wonder Frameworks, I'm newbie in this topic.
>> 
>> Well, I have a problem, I hope you can help me. I'm developing a test 
>> application, I want to learn about EOF.
>> 
>> I have 2 entities, that I created using EOModel. The first entity is: User, 
>> the second is Role. The relationship between the entities is: One user
>> can have many Roles.
>> 
>> Well, I tried to insert a row using the next code:
>> 
>>                    EOEditingContext ec = ERXEC.newEditingContext();
>>                    Role userRole = Role.fetchRole( ec, Role.NAME.eq("user") 
>> ); //Get the correct Role to the new user
>> 
>>                    User newUser = new User();                    
>>                    newUser.setName( name.toLowerCase() );
>>                    newUser.setPaternalName( paternalName.toLowerCase()  );
>>                    newUser.setMaternalName( maternalName.toLowerCase() );
>>                    newUser.setBirthday( new NSTimestamp() );
>>                    newUser.setUsername( username );
>>                    newUser.setPassword( password );
>> 
>>                    newUser.setRole( userRole );                   //Set the 
>> role to the user 
>> 
>>                    ec.insertObject( newUser );                    //Insert 
>> object to the EOEditingContext
> 
> one of the WO commandments:
> 
> always insert your EO immediately after creating it. i.e. after new User() 
> and before setting any attributes.
> 
> alternatively you can use 
> 
> User newUser = (User)EOUtilities.createAndInsertInstance(ec, 
> User.ENTITY_NAME) ;
> 
> 
> 
>>                    ec.saveChanges();                                //Commit 
>> to the DataBase
>> 
>> But, the server has the next error:     
>> 
>> java.lang.RuntimeException: You crossed editing context boundaries 
>> attempting to set the 'role' relationship of <your.app.model.User pk:"null"> 
>> (which is not in an editing context) to <your.app.model.Role pk:"2"> (in EC 
>> er.extensions.eof.ERXEC@762a5241).
>> 
>> I understand that the primary key of the user is null, because it's a new 
>> user and I want to insert it to the data base.
>> 
>> What is the correct way to insert row, when it have a relationship between 
>> the entities?
>> 
>> Thanks for you time
>> 
>> 
>> 
>> 
>> 
>> _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
>> Help/Unsubscribe/Update your Subscription:
>> https://lists.apple.com/mailman/options/webobjects-dev/louisdemers%40mac.com
>> 
>> This email sent to louisdem...@mac.com
> 
> Louis Demers eng.
> www.obzerv.com
> 
> 
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
> Help/Unsubscribe/Update your Subscription:
> https://lists.apple.com/mailman/options/webobjects-dev/programmingosx%40mac.com
> 
> This email sent to programming...@mac.com

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      (Webobjects-dev@lists.apple.com)
Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to