我目前有一个名为countries
的{{1}}类型的参数,我在java.util.List
子句中使用它,如下所示:
WHERE IN
在我的应用中,我必须将AND $X{IN, rd.country_id, countries}
转换为List<Country>
,以便我可以使用它来制作IN子句,否则Jasper会创建类似List<Integer>
的内容,而不是使用ID。
我想知道是否可以使用country_id IN ("Argentina", "Brazil")
作为我的参数并告诉List<Country>
使用字段 id 来创建IN子句,以便我可以使用{ {1}}方法显示用户选择的国家/地区,任何想法?感谢
答案 0 :(得分:1)
我现在能想到的一种方法是创建一个java类,它将获取类型countryname的List并返回countryId类型的List。 你必须创建另一个List类型的参数。这个参数将调用java方法。然后你可以在查询中使用这个参数
我认为@Lisa提供的答案在这种情况下不起作用。
编辑: 将java类放在项目类路径中 “&lt;&gt;”标签不可见
答案 1 :(得分:0)
我不确定您是如何部署此报告的,但是您是否可以将输入控件的可见列设置为国家/地区名称,但是将值列设置为国家/地区ID?
如果您无法编辑输入控件,那么如何修改查询以处理国家/地区名称到ID转换呢?
SELECT *
FROM myTable
WHERE countryID IN (SELECT countryID
FROM countryTable
WHERE $X{IN, countryName, countries}
)