Stavo guardando l'app campione di grails clinica per animali domestici su github.Buono Modo manutenibile per aggiungere un metodo di salvataggio al servizio Grails
Ha un servizio per la creazione di animali chiamati PetclinicService
che ha un metodo per gli animali domestici, aggiungendo:
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
}
che viene utilizzato dal controller in questo modo:
def pet = petclinicService.createPet(params.pet?.name, params.pet?.birthDate,
(params.pet?.type?.id ?: 0) as Long, (params.pet?.owner?.id ?: 0) as Long)
Sono curioso di sapere se questo è il modo migliore per salvare qualcosa nei graal? Con questo approccio se aggiungo un altro campo al dominio Pet
, ad esempio String color
, quindi dovrò toccare tre classi (Pet, PetController, and PetclinicService
) affinché la modifica sia completa.
C'è un modo per inviare l'intero oggetto params
al servizio e farlo associare automaticamente al dominio?
Quindi, sta usando la mappa 'params' all'interno di un servizio cattivo pratica? È possibile lavorare con 'params' nel controller? – havenchyk