Vanuit mijn ervaring zal ik het je vertellen. Er zijn twee scenario's
1) U wilt een parameter specificeren in de query waarvan de waarde dynamisch wordt ingesteld.
eg: where user_id = :userId
Hier krijg je geen probleem als je een parameter instelt met dezelfde naam als "userId";
2) Je typt de waarde
eg: select count(id) :: integer
wanneer u dit doet, moet u het escape-teken gebruiken, anders denkt de hibernate dat het een parameter is. En het geeft een foutmelding "Alle parameters zijn niet ingesteld " je kunt dit oplossen door code te schrijven met een escape-teken
eg:select count(id) \\:\\: integer
Dit lost dus je probleem op. En als je een slash voorwaarts gebruikt in plaats van een slash achterwaarts, krijg je de foutmelding "spatie is niet toegestaan na prefix"
Wrong: select count(id)//://: integer
Right: select count(id)\\:\\: integer
Maar ik raad je ten zeerste aan om de CAST-functie te gebruiken in plaats van "::"
deze operator select CAST(count(id) as integer)
Het is de betere manier om te typen en het zal tot minimale fouten leiden