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)
これが何かをグレイルに保存するための最良の方法であるかどうか知りたいのですが?このアプローチでは、Pet
ドメインに別のフィールドを追加する場合、たとえば、変更を完了するには、String color
3つのクラス()に触れる必要があります。Pet, PetController, and PetclinicService
params
オブジェクト全体をサービスに送信して、ドメインに自動的にマップさせる方法はありますか?