0

这是我的 grails 域对象的精简版本:

//this is a lookup table
class PetType {
  String description
}

class Family {
   static hasMany = [
      petTypePreferred:PetType
   ]
}

在我的控制器中,我从我的 gsp 返回了一个参数字符串值“petTypePreferred”。知道该字符串值并知道域类 Family,我如何从“petTypePreferred”字符串值中确定域类?在 grails 2.2.4 中,getPropertyByName(String value) 方法在域对象上被视为无效,即使它在 javadoc 中也是如此。

所以我有 String petTypePreferred 和 Class Family,但我需要在给定这两条信息的情况下找到 Class PetType。

4

1 回答 1

1

我不确定你到底想要什么:

获取域类名称

hasMany是一个简单的静态MapFamilyMap字段名称存储为键,将目标类型存储为值。PetType因此,您可以使用以下方法从字符串中获取域类petTypePreferred

Familiy.hasMany['petTypePreferred']

获取给定实例的descriptioninside值:PetTypeFamily

一个 Family 可以有多种宠物类型 ( hasMany),因此结果必须是一个集合:

Family family = ...
List descriptions = family['petTypePreferred']*.description

这为您提供了名为 的实例的PetType描述列表。Familyfamily

于 2013-09-20T19:58:29.133 回答