来自另一个域类的属性的 Grails 自定义验证器

Posted

技术标签:

【中文标题】来自另一个域类的属性的 Grails 自定义验证器【英文标题】:Grails Custom Validator on Property From Another Domain Class 【发布时间】:2012-07-06 08:50:16 【问题描述】:

Grails 2.0 的新手,如果在评估中创建 custid 在客户中的自定义验证器,我们将不胜感激。只有现有客户才能完成评估。谢谢!

类客户

String custId
String firstName
String lastName

static constraints = 
    custId()
    firstName()
    lastName()

类评估

String custId
String comment

static constraints = 
    custId()
    comment()

【问题讨论】:

【参考方案1】:

我建议稍微重新设计并将 Customer 的实例传递到您的评估对象中。然后在评估类中,创建一个验证以确保客户不为空。这样做是利用 Customer 类验证来确保您拥有一个“有效”的客户 ID,无论如何您都需要拥有该 ID,以便从我假设您从 Web 获取的 custId 中查找/实例化一个 Customer 对象正在提交表单。

class Evaluation 
  Customer customer
  String comment

  static constraints = 
    customer nullable: false
  

【讨论】:

以上是关于来自另一个域类的属性的 Grails 自定义验证器的主要内容,如果未能解决你的问题,请参考以下文章

Grails - 从自定义验证器闭包调用内置约束

在另一个域类中查看 grails 域类属性

如何将 Grails 域类映射到 DTO?

验证域类的实例是唯一的

没有这个的grails 3.1.10自定义验证器问题。定义

更新 Grails 中父域类中的“lastUpdated”字段