Hi Ted,

The current execution of the code you posted is this:

1- The object is created and inserted

2- Awake from Insertion is called and a Security is created (it was probably 
null)

3- SetSecurity is called by Person.createPerson method with the provided 
Security.


So, it the Security object of a Person is not suppose to change, you can put 
your guard in the setSecurity method.


Samuel


> Le 6 sept. 2016 à 13:08, Theodore Petrosky <tedp...@yahoo.com> a écrit :
> 
> I tried the first suggestion of wrapping the createSecurity in a check to see 
> if it is null and I got the same result.
> 
> then I moved the createSecurity method call into the init method and I get 
> the same issue. I could probably trick it by making the security entity not 
> mandatory. but as the createSecurity is in the init call, the person will 
> always get a security.
> 
> Ted
> 
> 
>> On Sep 6, 2016, at 12:44 PM, Johann Werner <j...@oyosys.de> wrote:
>> 
>> Hi Ted,
>> 
>> why not just check if there is already a value in your awakeFromInsertion?
>> 
>> public void awakeFromInsertion(EOEditingContext editingContext) {
>>      super.awakeFromInsertion(editingContext);
>>      if (security() == null) {
>>              setSecurity(Security.createSecurity(editingContext, true, true, 
>> true, true, true));
>>      }
>> }
>> 
>> But probably you should be using the init(EOEditingContext editingContext) 
>> method instead, which is highly advisable.
>> 
>> jw
>> 
>> 
>>> Am 06.09.2016 um 18:27 schrieb Theodore Petrosky <tedp...@yahoo.com>:
>>> 
>>> I have a to one relation Person to one Security. I keep all my security 
>>> booleans in entity Security.
>>> 
>>> I am overriding awakeFromInsertion so that when I create a new person, it 
>>> is assigned a security entity.
>>> 
>>> I have a problem in migrations. I have a postupgrade method that creates a 
>>> person. in this method I have:
>>> 
>>>             Person.createPerson(editingContext, new NSTimestamp(), 
>>> "Theodore", true, "Petrosky", “pw", “user", 
>>> Security.createSecurity(editingContext, true, true, true, true, true));
>>> 
>>> the security is mandatory as it should be. However on first run (to run the 
>>> migrations), I end up with two security entities. Obviously, when a person 
>>> is created and inserted the awake is fired and I get this orphan.
>>> 
>>> How can I eliminate this extra security entity? I was hoping that I could 
>>> just not add a security entity in the createPerson line, but then my app 
>>> complains that security is mandatory.
>>> 
>>> Person.createPerson(editingContext, new NSTimestamp(), "Theodore", true, 
>>> "Petrosky", “pw", “user”, null);
>>> 
>>> In the past I would have just used ERXJDBCUtilities.executeUpdate and added 
>>> the admin user with manual sql. I thought I would be clever and use the 
>>> postupgrade method.
>> 
>> 
> 
> 
> _______________________________________________
> 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/samuel%40samkar.com
> 
> This email sent to sam...@samkar.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