1
나는 두 개의 도메인 클래스가 있습니다검증 오류, Grails의
사용자 :
class User {
String login
String password
static belongsTo = [company: Company]
static hasMany = [holidays: Holiday]
static constraints = {
company(nullable:false)
}
}
회사 : 나는 한 많은 관계를 정의
class Company {
String shortName;
String name
Date dateCreated
String region
String email
Address address
Status status
Long tel
Long fax
static hasMany = [ users : User]
static constraints = {
name(nullable:false, size:6..20, unique:true)
shortName(size:2..10, nullable: true, unique:true)
region(nullable: true)
email(email:true)
tel(nullable: false, blank:false)
fax(blank:false)
address(nullable: false)
status(nullable: false)
users(nullable:true)
}
static mapping = {
address lazy: false
status lazy: false
}
}
을 User
과 Company
사이 그리고이 같은 테스트 작성하는 경우 :
void testCompanyHasManyUser() {
def user1 = new User(login:"anto", password:"secret")
assert user1.save(failOnError: true)
def company1 = new Company(shortName:"helloworld",name:"helloasd",region:"chennai",
email:"[email protected]",tel:23234,fax:343343, address: new
Address(country:"india",city:"chennai",street:"thayarst",code:"1233"),
status: new Status(name:"FIXED"))
assert company1.save()
company1.addToUsers(user1)
}
나는 다음과 같은 오류를 받고 있어요 테스트 실행하면 :
Validation Error(s) occurred during save(): - Field error in object 'mnm.User' on field 'company': rejected value [null]; codes [mnm.User.company.nullable.error.mnm.User.company,mnm.User.company.nullable.error.company,mnm.User.company.nullable.error.mnm.Company,mnm.User.company.nullable.error,user.company.nullable.error.mnm.User.company,user.company.nullable.error.company,user.company.nullable.error.mnm.Company,user.company.nullable.error,mnm.User.company.nullable.mnm.User.company,mnm.User.company.nullable.company,mnm.User.company.nullable.mnm.Company,mnm.User.company.nullable,user.company.nullable.mnm.User.company,user.company.nullable.company,user.company.nullable.mnm.Company,user.company.nullable,nullable.mnm.User.company,nullable.company,nullable.mnm.Company,nullable]; arguments [company,class mnm.User]; default message [Property [{0}] of class [{1}] cannot be null]
grails.validation.ValidationException: Validation Error(s) occurred during save():
- Field error in object 'mnm.User' on field 'company': rejected value [null]; codes [mnm.User.company.nullable.error.mnm.User.company,mnm.User.company.nullable.error.company,mnm.User.company.nullable.error.mnm.Company,mnm.User.company.nullable.error,user.company.nullable.error.mnm.User.company,user.company.nullable.error.company,user.company.nullable.error.mnm.Company,user.company.nullable.error,mnm.User.company.nullable.mnm.User.company,mnm.User.company.nullable.company,mnm.User.company.nullable.mnm.Company,mnm.User.company.nullable,user.company.nullable.mnm.User.company,user.company.nullable.company,user.company.nullable.mnm.Company,user.company.nullable,nullable.mnm.User.company,nullable.company,nullable.mnm.Company,nullable]; arguments [company,class mnm.User]; default message [Property [{0}] of class [{1}] cannot be null]
at mnm.UserIntegrationTests.testCompanyHasManyUser(UserIntegrationTests.groovy:21)
을 내가 validation
부분에서 오류를 만들었 알고 있습니다. company
개체를 저장하더라도 오류는 user.save
이 실패 함을 나타냅니다. 왜? 나는 어디에서 났습니까?
죄송 편집 한 그것을 –
쿨의 문제는 동일하게 유지되며, 검증이 'company (nullable : false)'일 때 회사가없는 사용자는 저장할 수 없습니다. 유효성을 완화하거나 올바른 경우 사용자를 테스트 –
에 저장하기 전에 회사를 사용자에게 추가하십시오. 이제 작동합니다. 내가 혼란스러워하는 부분은 유효성 검사 부분과 관련이있다. 유효성 검사'company (nullable : false) '부분을 제거하더라도 이전과 같은 오류가 발생한다. 왜 그게 잘못되어 가고 있는지 아는 사람? –