2013-10-31 6 views
0

나는 두 개의 도메인 클래스 A와 B를 가지고있다. B 클래스는 A 클래스에 속한다. 나는 A 객체가 생성 될 때 B 객체가 자동으로 생성되어 A 객체의 id 값과 함께 관련 db 테이블에 추가되기를 원한다. 가능합니까? 내가 어떻게 해?grails : 컨트롤러에서 데이터베이스에 엔트리 생성

내가 뭘 해봤 (A 컨트롤러) 다음

def b = new B(); 

    b.a = aInstance; 

    if(!b.save(flush: true)){ 
     flash.message = "error" 
     return 
    } 

하지만 b.save() 항상 실패 ...

편집 : 이 문제가 일부 필드가 필요하다는 것 같습니다. }

class B { 

int field1; 
int field2; 
String field3; 

static belongsTo = [anstances:A] 
static constraints = { 
} 

가 왜 필드 field1field2

을해야 할 다음과 같이 클래스 B는?

EDIT2 : int 필드 유형을 String으로 변경했습니다. 이제는 필요하지 않지만 save()는 null을 반환하고 "error"라벨이 표시됩니다.

+0

"항상 실패 함"이란 무엇을 의미합니까? 거기에 유효성 검사 오류, stacktrace, 뭐야? – Gregg

+0

나는 그 문제가 유효성 검사에 관한 것으로 나타났습니다 ... 질문을 편집합니다 – FrancescoDS

+1

IDE를 사용하여 디버그하거나 println (b.errors)을 수행하고 다른 검증 문제가 없는지 확인하십시오. – Gregg

답변

1

속성에 제약 조건을 지정하지 않았기 때문에 저장 문제가 발생했습니다. 필드는 nullable : false입니다. 기본적으로.

널 (NULL) : 다음 documentation에서 - 기본값을 거짓에 속성이 null로 설정 될 수 있습니다.

+0

그냥 내 질문을 편집했습니다. – FrancescoDS

+0

문제는 응용 프로그램을 다시로드 한 후에 데이터베이스 테이블이 업데이트되지 않는다는 것입니다. – FrancescoDS

관련 문제