2016-08-17 83 views
0

我有3個班深對象驗證

class Company { 
    String company_name 
} 

class Job { 
    String job_name 
    Company company 
} 
class Person { 
    String person_name 
    Job job 
} 

我如何檢查是否一個位置是真正從現有公司現有的,它是空的(沒有人是就可以了),或者換句話說有現有作業對象與當然現有公司,但沒有人在他的構造函數中通過這個Job對象,這是我所做的,我的錯誤在哪裏?

if (person==null && job != null && company != null) 
{ 
    def query=Job.where{company.company_name == company_name && job_name == job_name} 
    def query2=Person.where {job.job_name == job_name} 
    if(query == null && query2 != null) 
    { 
     def person12 = new Person(job: job, person_name: person_name) 
     if (person12.validate() && person12.save()) 
     { 
      redirect(url: "https//localhost:8080") 
     } 
    } 
+0

工作 - 人際關係是一對一的嗎?如果是這樣,如果你改變它會容易很多,所以Job中有一個人。所以你只要看看具體職位和公司和工人(Person)的職位是否爲空。 –

回答

0

如果可能的話我會涉及其他方式的類:

class Company { 
    String company_name 
    static hasMany = [jobs: Job] 
} 

class Job { 
    static belongsTo = [company: Company] 
    static hasOne = [person: Person] 
    String job_name 
} 
class Person { 
    String person_name 
    static belongsTo = [job: Job] 
} 

然後你就可以創建一個標準的知道,如果工作沒有關係的人。

List<Job> jobs = Job.withCriteria{ 
    eq('company', companyObject) 
    isNull('person') 
} 

你不需要之前驗證對象保存它,因爲它automatly前驗證,如果它是無效的,返回false。

if (person12.save()) { 
    redirect(url: "https//localhost:8080") 
}