3

これは SQL Server DB であり、開発者は何年も前にブール値の列名に?文字を含めました。多くのシステムがこの DB にアクセスするため、この列名を変更することは、私にとって実際にはオプションではありません。

これは、ネイティブの MS ツールで機能します。

SELECT * FROM MyDatabase.dbo.[My Table] WHERE [Active?]= true

その同じクエリは、 Hibernateが括弧で囲まれたフィールド名の内側をパラメーターとしてsession.createSQLQuery解釈しようとしてエラーをスローすると失敗します。?

バッククォートを試してみました [ Active?\]

/! でエスケープしてみました。[Active/!?] とその逆 !/ [Active!/?] は効果なし。

また、他の提案についてかなりの数のスタック オーバーフローと Web フォーラムを調べましたが、私が試した他のことはうまくいきませんでした。

これは休止状態のバグですか?括弧内はパラメーターとして解釈できるものではないように思えます。

特定のエラーはクエリの例外です

> Expected positional parameter count: 1, actual parameters:[]

クエリ文字列が添付されています。

joachim-isaksson[Active\\?]回答しました:

4

2 に答える 2