我是 grails 的新手,但之前有使用 .net 和 c# 和 linq 来查询数据库的经验。
我正在尝试使用多选下拉框按可选项目过滤对象列表。所以对于控制器,我将得到一个参数列表,其中一些参数为空。所以我想要类似的东西
DailyProduction.Where(x => loaction.contains(x.location)).Select().ToList()
。
然而,在 groovy 和 grails 中它看起来并不那么简单。
这是我尝试过的:
def filteredList = DailyProductionReport.createCriteria()
def results = filteredList.list {
if(params.locationSelect != null)
'in'("location", [params.locationSelect.each{ it != null}])
}
但我得到一个运行时异常,上面写着:
Class:
java.lang.ClassCastException
Message:
[Ljava.lang.String; cannot be cast to java.lang.String
我试过查看不同的论坛,但没有任何运气。我几乎无计可施。如果任何 groovy 大师可以为我阐明一些事情,我将不胜感激。
谢谢