如何打破继承

How to break inheritance

我正在使用 Grails。我正在尝试使用来自一个来源的值作为搜索另一个来源的方法。

def numbers=[];
//collection of Info maps
somemaps.each{
    numbers.add(it.id);
}
//THIS IS THE LINE THAT GENERATES THE ERROR
def info=Info.findAll("from Info as i where i.site in (:xsites)",['xsites':numbers]);

但是我得到这个错误

Subtype 'java.lang.Integer' of reloadable type myservices.Info is not reloadable:

如何将 'numbers' 的值从 Info 中分离出来,使它们在继承链中不再具有该类型?

嗯,我的第一个问题是,Info 和 Site 之间是否存在关系。如果是这样,你为什么不尝试实际的标识符。如,

def info=Info.findAll("from Info as i where i.site.id in :xsites, ['xsites':numbers]");

或者更糟的是,使用 createCriteria

def info=Info.createCriteria().list{
    site{
        'in' ('id', numbers)
    }
 }