Remy, You *can* get an EO to change its class over time by changing the restricting qualifier, discarding all cached knowledge of EO and doing a fetch. *But* that is really, really not recommended. If that is what you need, then look at the Role design pattern instead. That is probably closer to what you need.
If you just need to create instances of different classes based on a string (EntitySub.ENTITY_NAME) then create a factory method that takes the string and returns an instance of a sub-class of EntityAbstract. All of the information needed to do this is in the model and can be referenced at runtime. It is quite simple. The way you are doing it below is just wrong. Chuck From: Webobjects-dev <webobjects-dev-bounces+chill=gevityinc....@lists.apple.com> on behalf of remy <r...@algodata.fr> Date: Friday, November 24, 2017 at 2:30 AM To: "webobjects-dev@lists.apple.com" <webobjects-dev@lists.apple.com> Subject: Polymorphic Relationship Hi, I want make an polymorphic entity. I have an Entity Abstract named "EntityAbstract" and a subclass Entity named "EntitySub" where the qualifier is (refEntityName=‘EntitySub'). I have third Entity named "Relation" that has an relationship with "EntitySub". I have a problem when : EOEditingContext editingContext = ERXEC.newEditingContext(); int relationID = Integer.valueOf(relation().primaryKeyInTransaction()); EntityAbstract entityAbstract = ERXEOControlUtilities.createAndInsertObject(editingContext(), EntityAbstract.class); entityAbstract.setRefEntityName(EntitySub.ENTITY_NAME); entityAbstract.setRefEntityID(relationID); editingContext().saveChanges(); ERXEOControlUtilities.refreshObject(relation()); for (EntityAbstract e : relation().entitySubs()) System.err.println(e); // Print <your.app.model.EntityAbstract How to print <Entity pk:"..."> and not <EntityAbstract pk:"..."> ? I don't want use the class "Entity" for ERXEOControlUtilities.createAndInsertObject Do you have an idea? I tested : eo.invalidateAllObjects(); eo.parentObjectStore().invalidateAllObjects(); eo.rootObjectStore().invalidateAllObjects(); It does not work... The project : https://github.com/algodata44/PolymorphicRelationship Use DB H2 Thx
_______________________________________________ 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