1

我目前有一个名为countriestype的参数java.util.List,我在一个WHERE IN子句中使用它,如下所示:

AND $X{IN, rd.country_id, countries}

在我的应用程序中,我必须将我的转换List<Country>为,List<Integer>以便我可以使用它来制作 IN 子句,否则 Jasper 会创建类似的东西country_id IN ("Argentina", "Brazil")而不是使用 ID。

我想知道它是否可以List<Country>用作我的参数并告诉$X{}使用字段id创建 IN 子句,以便我可以使用该toString()方法显示用户选择了哪些国家,知道吗?谢谢

4

2 回答 2

1

我现在能想到的一种方法是创建一个 java 类,它将获取您的 countryname 类型的 List 并返回 countryId 类型的 List 。您必须创建另一个 List 类型的参数。此参数将调用 java 方法。然后您可以在查询中使用此参数

我假设@Lisa 提供的答案在这种情况下不起作用。

编辑:将java类放在你的项目类路径
中“<>”标签不可见

于 2013-07-03T15:59:41.037 回答
0

我不确定您是如何部署此报告的,但您能否将输入控件的可见列设置为国家名称,但将值列设置为国家 ID?

如果您无法编辑输入控件,如何修改查询以处理国家名称到 ID 的转换?

SELECT *
FROM myTable
WHERE countryID IN (SELECT countryID
                    FROM countryTable
                    WHERE $X{IN, countryName, countries}
                    ) 
于 2013-07-03T12:49:46.077 回答