<query name="GetFabric">
<![CDATA[Select F.FabricName,FS.FabricSeasonName from Fabric F,FabricSeason FS where F.FabricSeasonID=FS.ID]]>
</query>
ようHBMファイルでHQLを書いていますが、我々はコードファイルにクエリを書くことができるので、クエリのニーズ場合はHQL(HBMファイルやコードファイル)
<query name="GetFabric">
<![CDATA[Select F.FabricName,FS.FabricSeasonName from Fabric F,FabricSeason FS where F.FabricSeasonID=FS.ID]]>
</query>
ようHBMファイルでHQLを書いていますが、我々はコードファイルにクエリを書くことができるので、クエリのニーズ場合はHQL(HBMファイルやコードファイル)
を書くための良い方法は何ですか私は、コードに埋め込むのと同じ単一の関数でexceutedする、しかし、私は別のプロジェクト/クラスでこのクエリを実行する必要がある場合はHibernateマッピングファイルに配置された本のhbm.xmlで
名前付きクエリを置く、次のとおりです。
HBM
ファイルにHQLを埋め込むでしょう
主な理由は単純です: -
HQLメタデータが解析され/確認/キャッシュされたセッションの工場が建設され
これは、エラーが発生した場合、コードが起動した時点でエラーが発生していることを意味します。また、HQLはキャッシュされ、実行準備ができています。コード内でHQLを使用すると、最初の実行時にHQLを解析してキャッシュする必要があるため、最初の実行ではコードがわずかに遅くなります。
これら3つの答えは、コード内のHQLでも当てはまります。なぜ彼らはより安全であるのだろうか? – Rippo
ストアドプロシージャとほぼ同じ方法でSQLインジェクションの安全性が向上しています。 – aleroot
埋め込みマッピングファイルのid = '+ id'のClassAから ''を書くことはできません – Rippo