域建模中的验证错误,Grails

标签 validation grails groovy

我有两个域类:

用户 :

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:"xxxyyyy@gmail.com",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失败。为什么?我哪里做错了?

最佳答案

问题看起来是你说用户必须有公司,然后创建一个没有公司的用户并尝试保存它。

在打电话之前尝试设置公司

assert user1.save(failOnError: true)

但是,您已经展示了 testCompanyHasManyUser 的测试。 ,以及来自 testUserAddingHoliday 的错误,所以很难确定

关于域建模中的验证错误,Grails,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8381433/

相关文章:

java - 为什么输出以错误的顺序出现?

jquery - 想要通过使输入字段发光来警告用户错误

grails - 使用 Grails 处理旧数据库时如何避免自动模式修改?

javascript - 验证不是一个函数

grails - 尝试对具有关系的实体执行软删除会导致异常

mysql - 比较 Grails 查询中日期的时间部分

rest - SoapUI 使用 groovy 打印剩余请求的完整 URL 路径

Jenkins Groovy 管道 - git checkout 错误

validation - Yii 中一个属性的多重验证

javascript - jQuery 使用输入数组进行验证