Modelling of relations

Description

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.

Activity

Show:
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.

Assignee

Angelika Wittek

Reporter

Hans-Jörg Kremer

Labels

Process Step

Global

Eclipse Project

MDM Business Layer

Status

New

Components

None

User Story Name

Modelling of relations

Implementer (Company)

None

Customer (Company)

None

Epic Link

Fix versions

Affects versions

Priority

Major
Configure