ホームページ >データベース >mysql チュートリアル >Hibernate ネイティブ クエリで MySQL の代入演算子 (:=) を使用する方法は?
Hibernate で MySQL ネイティブ クエリを操作する場合、多くの場合、subselect ステートメントを利用する必要があります。ただし、これらのクエリで MySQL 代入演算子 (:=) を使用すると、「パラメータ プレフィックス ':' の後にスペースは許可されません」という例外が発生する可能性があります。
この問題は、Hibernate のパラメータ プレフィックス ':' の後の空白の制限に起因します。パラメータのプレフィックス。ただし、この特定のケースには解決策が存在します。
4.1.3 より前の Hibernate バージョンでは、この問題の回避策はありませんでした。ただし、バグ HHH-2697 は以降のリリースで修正されました。
Hibernate 4.1.3 以降では、バックスラッシュ () を使用して代入演算子をエスケープできます。これにより、次の変更されたクエリを使用できるようになります:
<code class="sql">SELECT k.`news_master_id` AS id, @row \:= @row + 1 AS rownum FROM keyword_news_list k JOIN (SELECT @row \:= 0) r WHERE k.`keyword_news_id` = :kid ORDER BY k.`news_master_id` ASC</code>
このエスケープされた構文を使用すると、前述の例外が発生することなく、ネイティブ クエリで代入演算子を使用できます。
以上がHibernate ネイティブ クエリで MySQL の代入演算子 (:=) を使用する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。