2010-03-15 5 views
0

J'y ai des classes de domaine:plusieurs objets de liaison dans Grails

  • personne. (Person.ID, nom, adresse)
  • Désignation. (Designation.ID, Titre, Band)
  • SalarySlip (Person.ID, Designation.ID, totalIncome, fiscal, etc., etc.)

En la méthode de mise à jour le contrôleur de personne quand j'affecte une personne à une désignation d'une liste de valeurs de désignation Je veux insérer un nouvel enregistrement dans SalarySlip.

Quelque chose comme:

def update = { 
    def SalarySlipInstance = new SalarySlip() 
    SalarySlipInstance.Person.ID = Params.ID //is this correct? 
    SalarySlipInstance.Designation.ID = ?? //since the value is coming from a list. How can I bind this field? 
} 

Répondre

2

Vous devez charger la personne et la désignation des objets premier:

salarySlipInstance.Person = Person.get(params.person.id) 
salarySlipInstance.Designation = Designation.get(params.designation.id) 

Si votre formulaire préfixer la personne et id désignation de personne avec. et désignation. il le rend plus facile à charger.

+0

Salut Dave, Merci pour votre réponse, j'ai essayé votre solution mais je reçois l'erreur suivante: Impossible de définir la propriété « id » sur objet nul – WaZ

+1

le côté gauche est mal, essayez ces: salarySlipInstance. personne = person.get (params.person.id) salarySlipInstance.Designation = Designation.get (params.designation.id) – Emyr

+0

J'ai écrit ce def SalarySlipInstance = new SalarySlip() SalarySlipInstance.person = person.get (params .person.id) SalarySlipInstance.designation = Designation.get (params.designation .id) SalarySlipInstance.save() La méthode de mise à jour fonctionne correctement, cependant, lorsque je vérifie les données à l'aide de dbPlugin, il n'y a pas de données dans la table! Ai-je rien manqué ici, Merci. – WaZ

Questions connexes