String queryStr = "select e from callbook$Event e";
…
queryStr += " where ";
…
queryStr += "(e.start between :start and :end) or (e.end between :start and :end)";
And it throws:
JpqlSyntaxException: Errors found for input jpql:[select e from callbook$Event e where (e.start between :start and :end) or (e.end between :start and :end)]
CommonErrorNode [<unexpected: [@30,76:76='.',<68>,1:76], resync=e.end between :start>]
CommonErrorNode [<unexpected: [@40,104:104=')',<35>,1:104], resync=:end>]
However when I replace the last one with
queryStr += "(e.start between :start and :end)";
it works. Why?!
Also, it causes strange behavior of this site’s parser:
If I’m not wrong, using setParameters() you bind values to positional parameters. Try to use :start1, :end1 and :start2, :end2 passing 4 parameters, not 2.
queryStr += “(e.start between :start1 and :end1) or (e.end between :start2 and :end2)”;
queryStr += " and ((e.event.start between :start and :end) or (e.event.end between :start2 and :end2))"
I get same error
JpqlSyntaxException: Errors found for input jpql:[select e from callbook$EventCard e where e.card.id = :cardId and ((e.event.start between :start and :end) or (e.event.end between :start2 and :end2))]
CommonErrorNode [<unexpected: [@45,111:111='.',<68>,1:111], resync=e.event.end between :start2>]
CommonErrorNode [<unexpected: [@57,147:147=')',<35>,1:147], resync=:end2>]