While working with iReport, I wanted to test my report with a default Collection value for my Hibernate Query.
The HQL is something like this,
SELECT person.fullName as personName
FROM Person person
WHERE person.id in ($P{people})
The Person.id is a long.
The report parameter $P{people} is a Collection.
To add a default value for testing, I had to rediscover instantiating a Collection from an Array. I was trying to find Arrays.asList(), and the like, but couldn’t remember it at the time.
While searching for what I needed, I found a lot of forums where people would ask how to do instantiation of a Collection from an Array without looping.
If you already have an array (perhaps named ‘myArray’), you could do something like the following.
new ArrayList(Arrays.asList(myArray));
In my case, I didn’t have an array, yet. I also wanted to initialize the array, too. Initializing an array of objects is easy enough.
new Long[] {new Long(521), new Long(423)};
So, combining the two, my default parameter would get
new ArrayList(Arrays.asList(
new Long[] {new Long(521), new Long(423)}
));
Hopefully this will help someone who needs to just instantiate a collection from an array, or someone who needs to figure out how to add a default value for a collection in iReport.
This is handy too
Arrays.asList(“1,2,3,4,5,6,7,8,9,10,11,12,23”.split(“,”))
i’ve got the problem. I have reports that produces an output based on parameter. Let say i’ve got 3 param. User didnt enter any value in 2nd param, but the 1st n 3rd param have value. How the report’s SQL statement will be looks like? is thare any solution for this kind of problem?
thanks!! very helpfull