使用できるように、テーブル名を動的に設定する必要がありますquery.setText(tname,abc)
例えば:select a.name from :tname where a.id = '2'
文字列パラメーターを設定するときに Hibernate が '' を追加すると想定しているsetText()
ため、使用setString()
すると " " と表示されるため、使用しました。tname is a invalid parameter
しかし、それでもsetText()
役に立たず、同じ例外が発生します。
テーブル名を動的に設定するにはどうすればよいですか?
PSR への返信:
つまり、テーブル名を Java 文字列の置換として置き換えるということです。しかし、休止状態からSQLインジェクション防止などのサポートを受けることはできませんよね? また、ステートメントのような状況で休止状態でパラメーターをバインドする方法、
例: 「%:name%」のような名前
これにより、不正な引数の例外も発生します。 query.setString(name,"def"); を使用してバインドしようとすると、パラメーターは名前付きパラメーターとして存在しません。