Java 言語を使用して、Hibernate から UPDATE を実行中にネイティブ SQL クエリを取得することは可能ですか?
たとえば、私は
session.update(something);
String
UPDATE アクションの背後にある SQL クエリを含む (または何か他のもの) を取得したいと思います。
Hibernate が MySQL に「送信」する効果的なクエリが必要です。
あなたはできる。Hibernate は log4j を使用しているため、適切なカテゴリを設定する必要があります。それらは:
org.hibernate.SQL
にdebug
org.hibernate.type
にtrace
ここも参照してください: Hibernate を使用するときにパラメーター値を含むクエリ文字列を出力する方法
あなたには2つの選択肢があります...
persistance.cfg.xml で設定することもできます<property name="show_sql">true</property>
が、これはパラメーターの値を表示しません。
(私の好みのオプション) SQL プロファイラー (MS SQL を使用している場合) を使用して、データベースに対して実行されている SQL を正確に確認できます。
プログラムでクエリを取得することはできません (または、少なくとも特定のデータベースのコーディングなしでは不可能です): SQL クエリは、休止状態を使用して対話しているデータベースに依存し、通常、休止状態を介して直接アクセスすることはできません。データベース ドライバー。
実際の SQL ステートメントを確認する最善の方法は、データベースのログ ファイルを確認することです。