如何在存储在地图中的非字符串列上使用 grails createCriteria() 来满足多种条件

问题描述

我在 Grails 中创建了一个 API,用于从表单传递参数。

在 API 内部我有以下代码

def condition(def params,def request)
{
        def map = request.parameterMap

        def result = Student.createCriteria().list{
            and {
                for(def key: map.keySet())
                {
                    eq(key,map.get(key))
                }
            }
        }

        return result
}

在这里,我使用 request.parameterMap 获取在请求中传递的所有参数。 然后我遍历参数的每个键。 现在有趣的是,我的参数键与数据库中的列相同。 并且用户可以在请求正文中传递可变数量的参数(这就是我使用循环和“AND”条件的原因)。

问题是:有些列是字符串,有些是整数。 如果我对所有这些都使用 eq( ),则它无法将字符串值(从 map.get(key))转换为整数或浮点数。

它给了我一个错误java.lang.String cannot be cast to java.lang.Integer

如何使用标准解决这个问题?

在此先感谢您。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...