我正在编辑grails应用程序的脚手架模板。
我的一个域类具有以下属性:
Set<GlobalRole> globalRoles
其中GlobalRole是枚举。链接是一对多的:
static hasMany = [globalRoles: GlobalRole]
默认的脚手架将角色显示为逗号分隔的字符串 - 我的目的是将其显示为列表。为了达到这个目的,我需要找出一个属性(globalRoles)是否为Set类型,以区分脚手架的生成。
if (User.globalRoles.type instanceof Set){
// do something else
}
然而:这句话是伪造的&#39;因此无法工作。
我在这里错过了什么吗?
答案 0 :(得分:0)
您正试图获取静态User.globalRoles
字段,当然这是错误的。你将使用反射/元编程:
if( User.hasMetaProperty( 'globalRoles' ) && Set.inAssignableFrom( User.getMetaProperty( 'globalRoles' ).type ){