是否可以使用 SQLJ 使用 SQL IN 语句?
我曾尝试将 IN 语句与 a List<String>
or结合使用String[]
来表示变量集合,但 SQLJ 说它无法解析对象。
参数对象类型对于请求的转换无效。
这是我在 Native SQL 中的查询:
SELECT *
FROM CARS_TBL
WHERE CAR_BRAND IN ('AUDI', 'PEUGEOT');
在 Hibernate 环境中,我将使用以下查询来获得结果:
List<String> brandList = new ArrayList<String>();
String hql = "SELECT car FROM Car car WHERE car.carBrand IN (:brandList);"
但是,我必须使用 SQLJ,并且在 Oracle SQLJ 文档中,似乎不支持以这种方式使用数组或集合的类型。
SQLJ 错误在生成的代码的以下部分中引发:
__sJT_stmt.setObject(2, brandList);
它尝试将集合/数组设置为对象,但由于不支持列表/数组,因此会引发异常。
你知道我如何可以使用 SQLJ 获得与本地和休眠查询相同的结果,知道我可以拥有可变数量的“汽车品牌”吗?