Hi Remy, I used polymorphic relationship, in my case I used ERXLongPrimaryKeyFactory (splitting Long primary key numbers into 2 parts, 1 sequence and 1 entity index), to help EOF a bit.
In the model you describe, I really think you should change it a bit. - an object should not change class ‘on the fly’, so once an object is instantiated, it should stay the same, - Attribute used for qualifying the entity should be set by default and be immutable. - what you have here as ‘refEntityName’ can be modelled differently, it can actually be part of the primary key (see ERXLongPrimaryKeyFactory), I recommend you to read the thread on ‘Horizontal inheritance to splitting big database tables to speed up?" https://lists.apple.com/archives/webobjects-dev/2016/Jul/msg00033.html I used the ERXLongPrimaryKeyFactory to good results (look at thread above) and in polymorphic relationship context it is specially great! jfv > On Nov 24, 2017, at 5:30 AM, remy <r...@algodata.fr> wrote: > > 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 > <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/jean_francois_veillette%40yahoo.ca > > This email sent to jean_francois_veille...@yahoo.ca
_______________________________________________ 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