Abrufen einer Liste von GORM beständigen Eigenschaften für eine domain
Was ist der beste/einfachste Weg, um eine Liste der persistenten Eigenschaften im Zusammenhang mit einer bestimmten GORM domain-Objekt? Ich kann die Liste mit allen Eigenschaften, aber diese Liste enthält nicht-persistente Felder wie class
und constraints
.
Derzeit bin ich mit diesem und filtern Sie die Liste der nonPersistent
Eigenschaften, die über eine Liste, die ich erstellt:
def nonPersistent = ["log", "class", "constraints", "properties", "errors", "mapping", "metaClass"]
def newMap = [:]
domainObject.getProperties().each { property ->
if (!nonPersistent.contains(property.key)) {
newMap.put property.key, property.value
}
}
Es scheint, es muss einen besseren Weg, um gerade die permanenten Eigenschaften.
InformationsquelleAutor der Frage lambmj | 2010-12-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie dies:
Hier ist ein link zu den Grails API für GrailsDomainClass (es ist ein link zu einer älteren version, konnte ich nicht finden, eine neuere nach einigen schnellen Recherchen). Es hat eine
getPersistentProperties()
(verwendet in den code-snippet oben). Sie durchqueren kann in der API-Dokumentation um zu sehen, welche anderen Methoden könnten für Sie nützlich sein.Wenn Sie wollen, ein Beispiel, ein
grails install-templates
anschaut und dannsrc/templates/scaffolding/create.gsp
. Es ist ein block dort, wo es durchläuft die persistenten Eigenschaften von Domäne.InformationsquelleAutor der Antwort Rob Hruska
Nun (geographischen Lage Grails-2.x) Sie haben nicht einmal zu instanziieren
new DefaultGrailsDomainClass(...)
und vermeiden Sie unnötige code-Ausführungen. Alle domain-Objekte der Klasse injiziert haben EigentumdomainClass
:Oder, falls Sie noch keinen domain-Objekt-Klasse, kann man
DefaultGrailsDomainClass
vom Anwendungskontext durch die domain-Klasse name - jede domain-Klasse besitzt eine DefaultGrailsDomainClass registriert als Spring-bean. So können Sie zum BeispielHolders
(vorausgesetzt, Ihr domain-Klasse name 'Foo'):InformationsquelleAutor der Antwort kiRach
Als der
grails 3.3.0
Beispiel:
Hoffe, das jemand hilft.
InformationsquelleAutor der Antwort Mamun Sardar