Yes, the issue was resolved by the method I proposed. You need to specify correct type either on java-side or server-side (query text).
See my explanation (it seems it got out of the list):
The driver does not parse your query, so it simply passes everything to server.
Server use widening conversion, so "bigint=number" becomes "bigint::number=number", not "bigint=number::bigint" and index can't be used when any function is applied to indexed field.
Note, that server can't do "bigint=number::bigint" because it does not know the numbers you will pass.
Consider examples:
1) 0 = 123456789012345678901234567890
2) 0 = 0.4
Correct value is false, but "bigint=number::bigint" will give you "overflow" error for the first example and true for the second, which is incorrect.