0

私はこのようにhbmファイルにHQLを書いています

<query name="GetFabric">
        <![CDATA[Select F.FabricName,FS.FabricSeasonName from Fabric F,FabricSeason FS where F.FabricSeasonID=FS.ID]]>
    </query>

しかし、クエリをコード ファイルに記述できるので、HQL (HBM ファイルまたはコード ファイル) を記述するより良い方法は何ですか?

4

3 に答える 3

6

私が HQL をHBMファイルに埋め込む主な理由は単純です:-

セッション ファクトリが構築されると、HQL メタ データが解析/チェック/キャッシュされます。

これは、エラーが発生した場合に、コードが起動した時点でエラーについて知ることができることを意味します。また、HQL はキャッシュされ、実行する準備ができています。コードで HQL を使用するということは、最初の実行時に HQL を解析してキャッシュする必要があることを意味するため、コードでの初回実行はわずかに遅くなります。

于 2012-05-11T05:19:26.653 に答える
0

クエリを単一の関数で実行する必要がある場合は、コードに埋め込みますが、このクエリを別のプロジェクト/クラスで実行する必要がある場合は、これを hbm.xml に配置します

于 2012-05-11T04:57:57.647 に答える
0

Hibernate マッピング ファイルに配置された名前付きクエリは次のとおりです。

  • Java コードに散在するクエリよりも保守が容易
  • グローバルにアクセスできるため、クエリを 1 回定義してコード内で何度も使用できます
  • より安全で、SQL インジェクション攻撃を防ぎます
于 2012-05-11T05:09:22.057 に答える