Modelling of relations


As a developer, I want the current modeling of relationships to be consistent and clear. Currently, this is not the case.

Detailed Description:

On the one hand, the intention seems to be that entities keep references to related entities as part of their state - at least the getPermanentStore (), getMutableStore (), and getChildrenStore () methods in the Core interface, as well as the initialization logic in the " BaseEntityFactory "and" EntityFactory " indicate that. On the other hand, only very few entities actually offer access methods to these references, whereas a majority of relationships must be traversed using corresponding methods in the interfaces "BaseEntityManager" and "EntityManager". It is completely unclear how relationships can be created, changed or deleted. In fact, the "transaction" interface currently used for write operations allows the creation and deletion of entire entities, but not the creation or deletion of relationships between existing entities. They say that the traversing of relationships was shifted from the entities to the EntityManager for performance reasons. This justification makes no sense, however, since a performance gain can only be achieved by a "bulk load" of relationships. However, the methods in the EntityManager are all univalent.


Angelika Wittek
October 4, 2017, 7:31 AM
Angelika Wittek
November 27, 2017, 9:11 AM

It was decided, that a major rework of the handling of the relations needs better definitiions of use cases and requirements than we have now,

To improve the current situation we have modified the interface.
in the BaseEntityManager the get*Store methods have been defined as non final.
With that, these methods can be overriden in the OdsAdpter and be used there to access the stores without resorting directly to the core.
There also comments added in several places to improve the understandibility of the current implementation.


Angelika Wittek


Hans-Jörg Kremer


Process Step


Eclipse Project

MDM Business Layer





User Story Name

Modelling of relations

Implementer (Company)


Customer (Company)


Epic Link

Fix versions

Affects versions