我正在使用sql.firstRow
根据某些条件检查postgres数据库中是否存在行。
def cur = sql.firstRow(r, '''
SELECT "some_thing"
FROM "my_table"
WHERE "customer_name" = :customer_name
AND "sad_date" = :sad_date
AND "forgiver" = :forgiver
''')
我发现这有效:
if (cur){
log.debug("Found Some thing " + cur["some_thing"])
log.debug("Cur: " + cur.keySet())
}
然而,这允许在其中没有some_field的任何行中。
问题
为避免这种情况,当我们尝试检查结果行中some_field
的非空值的存在时,如下所示:
if (cur && "${cur.some_thing}" ){
log.debug("Found Some thing " + cur["some_thing"])
}
错误
我收到错误建议:
No signature of `String.positive` for argument types for the given type.
我已阅读this question并已从cur.some_thing
和cur['some_thing']
更改为“$ {cur.some_thing}”,但错误不会消失
我还尝试了this post并尝试使用cur.getProperty("some_thing")
,但它仍然会引发同样的错误。