我有一个使用用户输入的params的条件查询,例如:

def query = MyTable.createCriteria()
def myQueryResult = query.list() {
   if (params.minToInvestMin)
                ge('minimalToInvest', params.minToInvestMin.toBigDecimal())
   if (params.minToInvestMax)
                le('minimalToInvest', params.minToInvestMax.toBigDecimal())
}

我已经阅读了有关该主题的Grails文档以及其他一些文章,但是它只讲了避免SQL注入(inject)的HQL方法。

条件是否在后台使用HQL?
或更直接地说,这种类型的条件查询对SQL注入(inject)是否安全?

我对安全事务还很陌生。

最佳答案

是的,您的示例中的条件声明可以安全地注入(inject)。

Criteria语句只是Hibernate的Criteria API的便捷构建器,因此使用它构造的任何查询都具有相同的行为。

09-10 08:07
查看更多