Description
postgresql数据库有一列id的类型为uuid,通过以下方式过滤数据库会提示两边类型不匹配的异常:operator does not exist: uuid = character varying
{
...
"id":"e94f8127-1dee-4f12-aefe-34f7fc601231"
....
}
编写了一个函数进行远程函数调用
.....
public Object uuidStr(@NotNull JSONObject current, String uuid) {
try {
return UUID.fromString(uuid);
} catch (Exception e) {
e.printStackTrace();
return uuid;
}
}
......
可以通过以下方式返回正常结果
{
....
"id()":"uuidStr(e94f8127-1dee-4f12-aefe-34f7fc601231)"
}
现在的问题是,我想实现id in ('e94f8127-1dee-4f12-aefe-34f7fc601231','ebc48f09-47da-4941-88f4-adfdc28db0d0',....)的效果,但是好像没法同时用"id(){}":[uuidStr(e94f8127-1dee-4f12-aefe-34f7fc601231),uuidStr(ebc48f09-47da-4941-88f4-adfdc28db0d0)..]
请问以上场景该如何实现
2条答案
按热度按时间cyvaqqii1#
分步骤,两个键值对先后执行,远程函数需要 key-() 提高优先级
nqwrtyyt2#
另外 PostgreSQL 可以加参数配置字符串传参,适配各种数据库类型,网上查下,可以不用 APIJSON 远程函数