Gorm/Grails 앱에서는 지속되지 않습니다
-
05-09-2019 - |
문제
나는 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()
제휴하지 않습니다 StackOverflow