我正在查看github上的示例宠物诊所 grails 应用程序。
它有一个用于创建宠物的服务,称为PetclinicService
具有添加宠物的方法:
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
}
从控制器中使用它,如下所示:
def pet = petclinicService.createPet(params.pet?.name, params.pet?.birthDate,
(params.pet?.type?.id ?: 0) as Long, (params.pet?.owner?.id ?: 0) as Long)
我很想知道这是否是在 grails 中保存某些东西的最佳方法?使用这种方法,如果我向域中添加另一个字段Pet
,例如String color
,那么我将不得不触摸三个类 ( Pet, PetController, and PetclinicService
) 才能完成更改。
有没有办法可以将整个params
对象发送到服务中并让它自动映射到域?