Ich habe viele Domänenklassen in meiner Anwendung und für Audit-Protokollierung Ich brauche das Namensattribut jeder Domain-Klasse. Leider ist das name-Attribut nicht in allen Domains generisch.
In meiner Audt-Log-Klasse bekomme ich den Typ des Objekts geändert/erstellt/gelöscht und speichere die ID jetzt (das ist gängiger Code, da alle Domains das Attribut 'id' haben) aber jetzt, wenn ich das Namensattribut abfragen will der Domain von der ID hat jede Domain ein anderes Namensattribut, wie Resource Domain hat ResourceName, User Domain hat UserName und so weiter ... so muss ich jede Domain einzeln behandeln (wie eine Map oder eine Menge von Switch Statements für Abrufen des Namensattributs vom Domänenklassennamen).
Gibt es eine Möglichkeit, kann ich eine Alias-Zuordnung für jede Domain-Klasse Namensfeld namens "Name" haben. Es sollte keine Änderung an den tatsächlichen Attributen in den Domänen geben, egal welche Änderungen ich mache, ich kann eine Spalte zur Prüfdomäne hinzufügen, aber keine anderen Tabellenänderungen.
Dank im Voraus
können wir mehrere Aliase für ein Domänenklassenattribut haben in Grails
1
A
Antwort
2
Ich glaube nicht, dass es eine Möglichkeit gibt, dies automatisch zu tun.
Wie Sie vermuten, müssen Sie entweder alle Domänenobjekte so ändern, dass sie ein "name" -Attribut haben, oder irgendwie eine Karte verwalten, welches Attribut in jeder Klasse als "Name" betrachtet wird ".
Ich nehme an, dass eine Antwort sein könnte, eine Methode getName() zu jeder der Domänenklassen hinzuzufügen und den entsprechenden Wert von dieser Methode zurückzugeben.
Wenn Sie die Domänenobjekte überhaupt nicht ändern möchten, können Sie diese Methode mithilfe der Groovy Meta-Object Programming (MOP) in jede Domänenklasse aus der BootStrap-Klasse einfügen.
Verwandte Themen
- 1. Können wir mehrere Join-Tabellen für dasselbe Tabellenpaar haben?
- 2. Für Textbox können wir Dateipfad Validierung haben?
- 3. Können wir mehrere geplante Thread-Pools in Java haben?
- 4. Können wir mehrere App.Config-Dateien in der .NET-Konsolenanwendung haben?
- 5. Können wir Funktionszeiger in Google Go haben?
- 6. Können wir Tree Grid in GWT haben?
- 7. Können wir Versand optional in Spree haben?
- 8. Interview Frage: Können wir ein Echo vor dem Header haben?
- 9. Können wir einen einzelnen Trigger für mehrere Tabellen in MySQL haben
- 10. Können wir ein Strukturelement vom Typ Array variabler Länge haben?
- 11. Mehrere Aliase für den einzeiligen Python-Import
- 12. Haben wir ein Plugin für Wi-Fi direkt in Phonegap?
- 13. können wir eine WizardPage in einer WizardPage in SWT haben?
- 14. Können Sie Aliase für importierte Module in Python definieren?
- 15. Wie können wir unbegrenzte Dimensionen für ein Dataset in HDF5-Datei mit RHDF5-Paket haben?
- 16. können wir mehrere Proxies in einem Geschäft in Sencha Extjs haben?
- 17. Haben Sie ein Lieblings-Grails-Tag?
- 18. Können wir eine Zuweisung in einer Bedingung haben?
- 19. Können wir mehrere Tabellen (erstellt auf Fly) für ein einzelnes Modell in Schienen verwenden?
- 20. Können wir andere Such-Widget als Symbolleiste in Android haben
- 21. GOCD - Können wir ein Arbeitsverzeichnis für Gradle/Gradlew Aufgabe
- 22. Können wir den Tabellennamen als "Option" in MySQL haben?
- 23. Validator für mehrere Arten in Grails
- 24. Können wir eine generische HystrixCommand-Unterklasse haben, von der aus wir verschiedene Abhängigkeiten aufrufen können?
- 25. Können wir mehrere Benutzer für einzelne neo4j-Datenbank erstellen
- 26. Können wir in Jekyll mehrere Sammlungen in demselben Ordner gruppieren?
- 27. Wie viele JVM können wir in einer Maschine haben?
- 28. Können wir eine Funktion ohne einen Namen in C haben?
- 29. Können wir in Task.Run eine while-loop-Logik haben?
- 30. Wie viele benutzerdefinierte Schemas können wir in SQL Server haben?
Ich kann die getName-Funktion tun, die am elegantesten aussieht. Vielen Dank –