title: Good Maintainable way to add a save method to grails service
body: <p>I was looking at the sample pet clinic grails app on <a href="https://github.com/grails-samples/grails-petclinic" rel="noreferrer">github</a>.</p>
  
  <p>It has a service for creating pets called <code>PetclinicService</code> that has a method for adding pets:</p>
  
  <pre><code>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
  }
  </code></pre>
  
  <p>which is being used from the controller like so:</p>
  
  <pre><code>def pet = petclinicService.createPet(params.pet?.name, params.pet?.birthDate,
      (params.pet?.type?.id ?: 0) as Long, (params.pet?.owner?.id ?: 0) as Long)
  </code></pre>
  
  <p>I'm curious to know whether this is the best way to save something in grails? With this approach if I add another field to the <code>Pet</code> domain, say <code>String color</code>, then I'll have to touch three classes (<code>Pet, PetController, and PetclinicService</code>) for the change to be complete. </p>
  
  <p>Is there a way I can send the entire <code>params</code> object into the service and have it automatically map to the domain?</p>