Attribut Join
Ein Attribut Join liefert analog zur Attributprojektion ausgehend von der Haupt-Entität der Suche oder einem abweichenden Attributbesitzerpfad alle oder ausgewählte Attributwerte des per Parameter Attribut ausgewählten Attributtyps.
Die Einsatzmöglichkeiten für den Attribut Join im Kontext unterschiedlicher Attributtypen verdeutlicht die folgende Fallunterscheidung:
Kardinalität |
Attributtyp ist |
Attributtyp ist typisiert |
|
konkreter |
alle |
||
"singulär" (≤1) |
Standardzugriff: |
|
Ein Attribut Join wertet Instanzen für alle singulären und pluralen Subtypen aus und liefert als Rückgabewert eine "flache" Liste, auf die Projektionen zugreifen können. |
"plural" (≥1:) |
Attribut Join ist der Standardzugriff |
Ein nicht-typisiertes Singuläres Attribut ist als Attribut auswählbar. Technisch bietet ein Attribut Join also Zugriff auf den Wert eines Singulären Attributs. Der Singuläres-Attribut-Join liefert allerdings dasselbe Ergebnis.
Für ein nicht-typisiertes Plurales Attribut, z. B. die "Kommunikationsinformation" (AddressCommunicationInfo) für den Entitätstyp "Adresse" (Address), stellt ein Attribut Join den Standard-Join dar.
Bezieht sich die Attribut-Auswahl auf einen Attributtyp aus der Gruppe der Typisierten Attribute (z. B. "Textattribut" oder "Firmen- und Adressattribut"), liefert der Attribut Join die Attributwerte aller singulären und pluralen Subtypen als "flache Liste".
Die Typisierten Attribute mit pluralem Subtyp erscheinen im Rückgabewert also nicht "gruppiert" bzw. "gebündelt" je Attributbesitzer und Subtyp, sondern als individuelle Attributwerte (mit demselben Subtyp aber unterschiedlichem index-Wert.
Im Unterschied zur Attributprojektion kann die Liste der Rückgabewerte für einen Attribut Join durch eine Join Bedingung auf eine Teilmenge eingeschränkt werden.
Konfiguration
Parameter |
Datentyp |
Beschreibung |
Spezifische Parameter |
||
Attributbesitzerpfad |
Entität |
Ein Attributbesitzerpfad muss nur explizit durch die Konfiguration einer Projektion (s. Projektionen) definiert werden, wenn die Entität im Kontext der Suche nicht der Besitzer der Attribute ist, die ausgewertet werden sollen. Dies ist z. B. in den folgenden Fällen relevant:
|
Attribut |
Klasse |
Im Auswahlfeld/Combobox-Element für den Parameter Attribut muss eine Auswahl aus den per Dropdown angebotenen Optionen für den Attributtyp erfolgen. Hier stehen nur die Attributtypen zur Auswahl, die der Entitätstyp des anwendbaren Attributbesitzers per Implementierung unterstützt. ►HINWEIS◄ Stehen für das Attribut keine Optionen zur Auswahl oder werden Optionen vermisst, dann wurde eventuell versäumt den Attributbesitzerpfad passend zu setzen (z. B. die "Adresse" eines Kontos, für das keine Attribute implementiert sind). |
Generische Parameter |
||
Join Alias, Join Typ, Optional, Join Bedingung |
Beispiele
Typischer Anwendungsfall: Selektiver Zugriff auf Plurales Attribut
Eine CSV Suche für Benutzer soll je "Benutzername" (username) E-Mail-Adressen auflisten, die für diesen Benutzer über das plurale Attribut "Kommunikationsinformation" der Adresse des Benutzers angegeben sind.
Falls für einen Benutzer mehrere "Kommunikationsinformationen" mit dem Kommunikationstyp "E-Mail" (EMAIL) vorliegen, sollen diese zeilenweise (als mehreren Zeilen für denselben Benutzer) ausgegeben werden.
Sofern im "Kommunikationsinformation"-Attribut ein "Kontext" (communicationContext) angegeben ist, soll dieser Textwert in der Ausgabespalte (CONTEXT) erscheinen.
Konfiguration:
Innerhalb einer CSV Suche für Benutzer wird der rechts abgebildete Attribut Join erstellt:
|
|
|
Die Ausgabespalten werden durch drei Instanzen der Feldprojektion definiert:
|
|
Laufzeitbeispiel: username,email.communicationValue,email.communicationContext |
Besonderer Anwendungsfall: Zugriff auf mehrere Subtypen eines Typisierten Attributs
Über die Firmenadresse (als Attributbesitzer) können einem Firmenkonto "Adresskontakte" zugeordnet werden. Die betreffenden Daten sind wiederum Adressen, die als Typisiertes Attribut des Typs "Adresskontakt" (AddressContact) behandelt werden, wobei ein Kontakttyp zugewiesen wird. Ener Tupel-Suche für Firmen soll mit den Adressdaten von allen Adresskontakten angereichert werden, deren Kontakttyp entweder "Geschäfftsführer" (CEO) oder "Mitarbeiter" (EMPLOYEE) ist.
Konfiguration:
Der oben abgebildeten Attribut Join stellt die gewünschten Adresskontakte über die folgende Parametrierung bereit:
Der Attributbesitzerpfad greift über eine Feldprojektion auf das Feld "Adresse" (address) des Firmenkontos zu.
Im Parameter Attribut ist der Attributtyp "Adresskontakt" (AddressContact) ausgewählt.
Als Join Alias ist willkürlich der Name staff zugewiesen.
Der Join Typ "Inner" stellt sicher, dass nur Firmen berücksichtigt werden, für die mindestens ein Adresskontakt vorliegt.
Die Option Optional ist unerheblich, da sich Projektionen für Ausgabespalten (s. unten) den Alias staff adressieren.
Die Join Bedingung verwendet eine Such-Verknüpfung, die zwei Instanzen der Feldprojektion ver-ODER-t:
Die erste Feldprojektion stellt fest, ob das Feld "Typ" einer Adresskontakts als Kontakttyp "Geschäftsführer" (CEO) angibt.
Die erste Feldprojektion stellt fest, ob das Feld "Typ" einer Adresskontakts als Kontakttyp "Mitarbeiter" (EMPLOYEE) angibt.
Die Ausgabespalten werden wie rechts abgebildet durch drei Instanzen der Feldprojektion definiert:
|
|