Re: Tweaking the model on start-up
Re: Tweaking the model on start-up
- Subject: Re: Tweaking the model on start-up
- From: Chuck Hill <email@hidden>
- Date: Fri, 03 Jun 2016 18:55:06 +0000
- Thread-topic: Tweaking the model on start-up
Ugh. Have a look at ERXEntityClassDescription$Factory. It does not deal well with this. A sub-class of Factory is one way to approach this. Make registerDescriptionForEntity public
and call it. Though you might need to get rid of the old class description.
Another way is to listen for the EntityLoadedNotification and change the class there. That should be before ERXEntityClassDescription$Factory gets involved.
Chuck
From:
Mark Gowdy <email@hidden>
Date: Friday, June 3, 2016 at 4:50 AM
To: Chuck Hill <email@hidden>
Cc: WebObjects-Dev <email@hidden>
Subject: Re: Tweaking the model on start-up
finishInitialization() in your application.
I have attempted to tweak my ‘User’ entity at ‘Application.finishInitialization()’,
But when the app tries to get a User object, it blows up:
ERROR er.extensions.eof.ERXEntityClassDescription - Unable to register descriptions for class: class com.es.eo.User
at er.extensions.eof.ERXEntityClassDescription$Factory.registerDescriptionForClass(ERXEntityClassDescription.java:615)
at er.extensions.eof.ERXEntityClassDescription$Factory.classDescriptionNeededForClass(ERXEntityClassDescription.java:392)
The smallest change that causes the error above is:
EOEditingContext tmpEc = ERXEC.newEditingContext();
EOEntity entity = EOUtilities.entityNamed(tmpEc, "User");
entity.setClassName("com.es.eo.User"); //
changed from 'com.mg.users.eo.User'
I guess I need to re-initialise or register something, but I am not sure what exactly.
I discovered that the other tweaks to the model (adding the ‘User' —>> ‘Hubs’) actually worked.
My problem appears to primarily be the class name change.
It looks like I need to register it somehow. Any ideas?
Is there a convenient way to update an Entity details when the app starts up?
'Model Framework’ (A) has an Entity called ‘User’
‘Model Framework’ (B) has an Entity called ‘Hub’ that is joined (to-one) with to ‘User’
(where ‘User’ knows nothing about ‘Hub’, it is out of scope)
I can create a class in (B) called
com.B.User extends com.A.User
so that I can add the additional set/get code,
and then apply something like this (at start-up):
className = "com.B.User";
joinSemantic = EOInnerJoin;
joins = ({destinationAttribute = userID; sourceAttribute = id; });
_________________
Mark Gowdy
Gowdy Associates Ltd
Skype: markgowdy
_________________
Mark Gowdy
Gowdy Associates Ltd
M: +44 7808 400 941
Skype: markgowdy
_________________
Mark Gowdy
Gowdy Associates Ltd
M: +44 7808 400 941
Skype: markgowdy
|
_______________________________________________
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