Při parametrizovaných dotazech v databázích (připravené příkazy) NESMÍ přiřazení hodnot parametrům měnit strukturu a cestu provádění dotazu (jinak je databáze nepovažují za parametrizované dotazy a vyvolá výjimku).
Proto nemůžete mít připravené výpisy pro dotazy typu:
select * from myTable order by ?select id, f1, ? from myTableselect * from ?.
protože přiřazení hodnoty každému parametru změní cestu provádění dotazu (pamatujte, že dotaz připravených příkazů je analyzován jednou a výsledkem je jediná cesta provádění).
Stejná pravidla platí pro analyzátor dotazů Hibernate, parametru nesmíte přiřadit hodnotu, která mění strukturu dotazu.
Přiřazení řetězce s hodnotami 1, 2, 3 na parametr SHOULD-TO-BE-A-NUMBER je úplně stejný, ve skutečnosti bude první dotaz přeložen stejně jako update weight_note_receipt set pledge_id =:pledge where wn_id = :wns ale druhý bude přeložen jako update weight_note_receipt set pledge_id =:pledge where (wn_id = :x1 or wn_id = :x2 or wn_id = :x3) , samozřejmě různé dotazy s různými cestami provádění.
Takže i kdyby Hibernate nevyvolal výjimku, vaše databáze ano.