Hallo Forum,
ich habe ein BO Aufgaben. Das hängt als Subform an mehreren anderen übergeordneten BOs (ÜBO), wie z. B.
Gebäude Fahrzeug Person
^ ^ ^
| | |
—— Aufgaben ——
Für jedes ÜBO mit Aufgaben muss ich in der BO Aufgaben ein Referenzverweis setzen, also refGebäude, refFahrzeug usw.
Jetzt möchte ich ausgehend vom ÜBO auf die anhängenden Aufgaben zugreifen und diese zum Bearbeiten selektieren.
Dazu hätte ich gerne eine möglichst generische Lösung in der Form:
GBO genericBO = context.getGenericBusinessObject(GBO.class);
List<Aufgaben> lstAufg = genericBO.getAufgaben();
Ich weiß natürlich, dass das so nicht geht. Ich hatte daher den Ansatz, die Aufgaben über eine Query zu filtern:
GBO genericBO = context.getGenericBusinessObject(GBO.class);
Query<Aufgaben> queryAufgaben = QueryProvider.create(Aufgaben.class);
queryAufgaben.where(Aufgaben.<strong>Objektid</strong>.eq(bezeichnung));
Objektid ist dabei ein zusätzliches Feld zu den Aufgaben, was ich mir vorher zu jedem Aufgabensatz auswerte und anlege;
String objektid = (curAufgabe.getRefgebaeude()+curAufgabe.getRefFahrzeug()+curAufgabe.getRefperson()).replaceAll("null", "");
curAufgabe.setObjektid(objektid);
Das ist jetzt allerdings sehr umständlich, da ich jedesmal diese Regel bzw. diese Stringformel anpassen muss, wenn ein neues ÜBO hinzukommt oder wegfällt.
Dazu meine Fragen:
1. Gibt es vielleicht insgesamt eine elegantere, generischere Lösung für diese Form der n:1-Beziehung?
2. Kann die Objektid des ÜBO ggf. direkter ermittelt werden, z. B. direkt bei der Anlage einer neuen Aufgabe?
Danke im Voraus