我是Groovy的新手,并且我正在使用Groovy Sql库执行带有占位符的查询。 如果我传递非null参数,则代码可以很好地工作并返回记录,但是如果某些参数为null,groovy将无法正确解析查询并且不返回任何内容。 我认为问题是这样的:在我的where条件中,无法解析具有param = null的“ field =:param”,就像“ field is null”一样, 我不想将NVL放在每个字段上,也不想做类似“ if(!param)然后查询+ =“ AND字段为空””的事情。 有什么办法吗? 这是一些代码:
void update(Map params){
def sql = new Sql(DbConnection)
sql.executeUpdate(Query.UPDATE, params)
}
private static final String UPDATE = """
UPDATE TEST_TABLE SET
ID_01 = :cod01,
ID_02 = :cod02,
ID_03 = :cod03
WHERE 1 = 1
AND FIELD1 = :param1
AND FIELD2 = :param2
"""