Ich schaute auf die Probe Haustier Klinik Grails App auf github.Gut Wartbare Möglichkeit, eine save-Methode zu Grails Service hinzufügen
Es hat einen Service Haustiere für die Erstellung von PetclinicService
genannt, das ein Verfahren für das Hinzufügen von Haustieren hat:
Pet createPet(String name, Date birthDate, long petTypeId, long ownerId) {
def pet = new Pet(name: name, birthDate: birthDate, type: PetType.load(petTypeId), owner: Owner.load(ownerId))
pet.save()
pet
}
, die wie so von der Steuerung verwendet wird:
def pet = petclinicService.createPet(params.pet?.name, params.pet?.birthDate,
(params.pet?.type?.id ?: 0) as Long, (params.pet?.owner?.id ?: 0) as Long)
Ich bin gespannt, Wissen Sie, ob dies der beste Weg ist, etwas in Grails zu retten? Bei diesem Ansatz, wenn ich ein weiteres Feld zur Pet
Domäne hinzufüge, sagen wir String color
, dann muss ich drei Klassen (Pet, PetController, and PetclinicService
) berühren, damit die Änderung abgeschlossen ist.
Gibt es eine Möglichkeit, ich kann das gesamte params
Objekt in den Dienst senden und es automatisch auf die Domäne zuordnen?
Also, ist mit 'params' Karte im Dienst eine schlechte trainieren? Ist es notwendig, mit 'params' im Controller zu arbeiten? – havenchyk