Ich habe ein Domain-Objekt in Grails, das eine Reihe von Schlüssel/Wert-Paaren für jede Instanz speichern muss. Es sollte nie mehr als ungefähr 10 Paare geben. Die Benutzer der Anwendung müssen in der Lage sein, diese Schlüssel/Wert-Paare zu bearbeiten. Im Moment suche ich die Daten in einer HashMap für jede Instanz der Domain-Klasse. Während ich denke, dass dies funktioniert, bedeutet es, dass ich eine Menge benutzerdefinierten Code schreiben muss, um diese Objekte zu bearbeiten, zu aktualisieren und anzuzeigen, anstatt den generierten Code zu verwenden. Gibt es eine bessere Möglichkeit, die Schlüssel/Wert-Paare zu speichern und zu bearbeiten, oder sollte ich einfach bei HashMap bleiben?Speichern und Bearbeiten von Schlüssel/Wert-Paaren in Grails?
1
A
Antwort
3
Was wäre, wenn Sie jedes Schlüssel/Wert-Paar als erstklassige Objekte modellieren würden? z.B. :
class MyKeyValue {
static mapping={
id generator:'assigned'
}
String id
String value //i guess this could be an object of some sort, as long as it is a valid property (like Date)
def getKey = {
return id;
}
}
class User {
//...other properties
//you'd put this property where the hashmap was originally.
List MyKeyValue
}
Die generieren-all-Befehl eine eher schlichte Benutzeroberfläche für diesen schaffen wird, aber seine verwendbar, und ist ein Ausgangspunkt für die Anpassung. Sie könnten dann Ihre eigenen Einschränkungen schreiben und die eingebaute Validierung von GORM usw. nutzen.
Allerdings ist es ein bisschen hacky imo - und die Leistung wird nicht großartig sein, aber wenn Sie nur ein paar haben, denke ich nicht thats werde eine Rolle spielen.