문제

나는 Grails 1.1 앱에 다음과 거의 관련이 있습니다.

class AppCategory {
    static belongsTo = App
    static hasMany   = [ apps: App ]
    String name
}

class App {
    static hasMany = [ categories: AppCategory]
    String name
}

App app = new App()
AppCategory appCat = AppCategory.findByName('blah')
app.addToCategories(appCat)
app.save()

올바른 테이블 (APP, APP_CATEGORY 및 APP_CATEGORIES)이 생성되고 열은 모두 괜찮은 것처럼 보이지만 협회 테이블의 레코드와 오류가 없습니다. APP_CATEGORY 테이블 및 앱 테이블이 올바르게 채워져 있습니다.

협회 테이블의 도메인 객체를 수동으로 관리해야합니까? 아니면 더 나은 아직, 나는 완전히 명백한 것을 놓친 것입니까?

도움이 되었습니까?

해결책

위의 예에서 표현되지 않은 한 가지는 필수 필드이지만 앱 인스턴스에 이름을 제시하지 않았다는 것입니다 (Grails Fields는 Nullable : False가 명시 적으로 말하지 않으면 거짓)입니다. 당신이 확인하면 내기

app.hasErrors()

App.Save () 후에는 App.Errors Collection에 나열 할 수있는 오류가 있습니다.

그렇지 않으면, 당신이 가진 것은 괜찮으며,이 코드는 위에서 가지고있는 도메인 객체에서 나에게 잘 작동했습니다.

AppCategory appCat = new AppCategory(name: "blah")    
appCat.save()    
assert !appCat.hasErrors()


App app = new App(name: "testApp")
app.addToCategories(appCat)    
app.save()    
assert !app.hasErrors()
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top