|Validating IN expression still incorrectly shown as error [message #1764475]
||Tue, 30 May 2017 11:35
| Karsten Wutzke
Registered: July 2009
I have the following JPQL query:
FROM Whatever we
JOIN we.trade trd
JOIN we.whateverType wet
WHERE trd.partnerId = :partnerId AND we.whateverType.id IN :whateverTypeIds
ORDER BY we.whateverType.id
This shows whatevers for the current partner and only the types of whatevers passed into the query via :whateverTypeIds, which is a list of integers (List<Integer>).
Now Dali shows two validation errors:
* The left parenthesis is missing from the IN expression. (red marker under the N of the IN keyword)
* The right parenthesis is missing from the IN expression. (red marker under the last s of the query param :whateverTypeIds)
I've already reported this problem several years ago here:
There's an answer by Pascal Filion: https://www.eclipse.org/forums/index.php?t=msg&th=369011&goto=900408&#msg_900408
... listing the following bug as being fixed:
2: Incorrect validation for IN expression using an input parameter
This should have been fixed in Indigo SR2 (3.7.2), see
However, this bug is *NOT* fixed in the latest Neon release I have downloaded a week ago (somewhere around 25th of May 2017).
Switching off the Dali validation is tough. Our project has so many badly named identifiers in queries because the entities were generated from the DB and we're successively refactoring them to usable fields, getters and setters.
Unfortunately Dali IN expression validation and bad identifiers are BOTH treated under the check box "Invalid or incomplete JPQL queries" instead of "Identifier not found" and "Bad expression"...
Can anyone please comment on this? What to do? Someone reopen the ticket?
Powered by FUDForum
. Page generated in 0.02098 seconds