Warunkowe, gdzie klauzule w JasperReports

Powiedzmy, że chcę JasperReport, który pozwala użytkownikowi filtrować datę, jeśli sobie tego życzą. SQL jest następujący:

select * from foo where bar = $P{bar} and some_date > $P{some.date}

Teraz nie chcę filtrować według daty, jeśli nie podali daty. Znalazłem następujący kludge, którego ludzie używają:

select * from foo where bar = $P{bar} $P!{some.date.fragment}

Isome.date.fragment parametr jest zdefiniowany z następującą wartością domyślną:

($P{some.date} == null || $P{some.date}.equals("")) ? "" : "AND some_date >'" + new java.sql.Date($P{some.date}.getTime()).toString() + "'"

To nie działa jakotoString nie wyświetla daty w formacie zrozumiałym dla mojego serwera SQL. Chciałbym, aby warunkowe nadal używało przygotowanej instrukcji ze sterownikiem jdbc i wrzuciło parametr, chcę, aby przygotowana instrukcja była zależna od tego, czy parametr ma wartość null, czy nie. Czy można to zrobić?

questionAnswers(3)

yourAnswerToTheQuestion