如何将属性添加到地图?

时间:2012-02-16 22:35:34

标签: grails groovy

我有一个域类:

class Person {
    String name
    Boolean likesGrails
    Boolean isSmart
}

并希望在将数据传递给视图(将使用friend来决定内容)之前预先处理数据(创建新属性friend):

def people = Person.list()
people.each {
    it.friend = likesGrails && isSmart
}

如何添加此friend属性?上面的代码不起作用(它抱怨it.friend不存在)。

2 个答案:

答案 0 :(得分:6)

您应该只能添加:

static transients = [ 'friend' ]
public boolean isFriend() {
  likesGrails && isSmart
}

到您的域类,然后在您的视图中访问person.friend

答案 1 :(得分:0)

如果您不希望将瞬态存储在数据库中,则可以添加瞬态。

class Person {
       String name
       Boolean likesGrails
       Boolean isSmart

       Boolean friend
       static transients = [ 'friend' ]
}

但您无法动态添加随机属性到域类。