2016-08-17 3 views
0

Привет У меня есть эти два классаОшибка создания объектов

class Company { 
    String company_name 
    static constraints = { 
     company_name size: 3..20, unique: true, nullable: false 
    } 
    String toString() { return company_name} 
} 

class Job {  
    String job_name 
    Company company 

    static constraints = { 
     job_name size: 3..20, unique: false, nullable: false 
     company nullable: false 
    } 
    String toString() { return job_name} 
} 

и этот метод:

def register(String company_name,String job_name) 
{ 
    def job = new Job(company : new Company(company_name : company_name), job_name: job_name) 
    if (job.validate() && job.save()) 
    { 
     redirect(url:"https//localhost:8080") 
    } 
} 

Я могу создать объект, например Company:nvidia, Job:worker но если я пытаюсь создать другую позицию для Компания nvidia- Company:nvidia, Job:owner У меня есть ошибка, почему? Это в условии if:

ответ

0

У вас есть unique в атрибуте company_name, и ваш код пытается создать новый экземпляр Company с каждым новым экземпляром Job.

Вы должны сделать это так:

def nvidiaCompany = new Company(company_name: 'nVidia').save() 

def jobDesigner = new Job(company: nvidiaCompany, job_name: 'designer') 
def jobDeveloper = new Job(company: nvidiaCompany, job_name: 'developer') 

Таким образом, вы повторно использовать экземпляр Company. Если вы создаете только один Job экземпляр в коде, вы должны получить экземпляр Company первый:

def nvidiaCompany = Company.findByCompanyName('nvidia') 
def jobDesigner = new Job(company: nvidiaCompany, job_name: 'designer') 
+0

это может быть вызвано 2 вещами. Во-первых, вы используете подчеркивание в имени атрибута ('company_name' вместо обычного' companyName'). Во-вторых, это зависит от вашей среды IDE, потому что эти методы динамически добавляются во время компиляции/выполнения, IntelliJ работает обычно хорошо, не уверен в Eclipse/STS, поддержка Grails/Groovy в последнее время была недостаточной. –

+0

Спасибо, много это сработало вне ! :) – user6725249

+0

Приятно, приветствую :-) –

Смежные вопросы