Grails 3 - 检查命令对象值是否都为空

时间:2016-05-24 16:15:42

标签: grails groovy grails-3.1

我有一个班级:

class PersonCommand implements Validateable {
    String firstName
    String lastName

    static constraints = {
        firstName nullable: true
        lastName nullable: true
    }
}

我有一个需要验证的PersonCommand类型列表。我想迭代每个元素并检查firstName和lastName是否都为null。有没有办法在没有明确检查这些属性的情况下执行此操作?我想做点什么:

for(PersonCommand person in people) {
    if(areAllMapValuesNull(person.properties)) {
        person.validate()
    } else {
        ...

但是person.properties除了firstName和lastName之外还添加了其他属性,因为它是Validateable。我没有在areAllMapValuesNull()函数上寻找帮助,只是在获取值firstName和lastName而不对代码进行硬编码时。

1 个答案:

答案 0 :(得分:1)

您可以尝试此代码,我没有测试,是您可能的解决方案的草稿,对吧。

  def p = new DefaultGrailsDomainClass(PersonCommand.class)
  for(PersonCommand person in people) {
    def prop = person.properties.entrySet().findAll{ it.key in p.persistantProperties } 
    if(areAllMapValuesNull(prop)) {
        person.validate()
    } else {}

干杯。