2

私は Hibernate の調査に数日を費やしましたが、それ自体では散らかった SO に値するものではないいくつかの小さな質問がありますが、一緒に、Hibernate が全体としてどのように動作するかについての洞察を与えるのに役立つと思います。

  • Hibernate エンティティを作成するには、構成hibernate.cfg.xmlファイルエンティティへの参照を追加し、それぞれの POJO に@Entity. これはひどく冗長に感じます。注釈だけを使用して、XML エントリをスキップできるのはなぜですか?
  • Hibernate には、API を使用したパラメーター バインディングのサポートが組み込まれているようですが、QueryAPI にそのようなオプションはありませんCriteria。インスタンスでパラメータ化は可能Criteriaですか?もしそうなら、どのように、そうでなければなぜですか?
  • 多くの L2 (第 2 レベル) キャッシュ プロバイダーが表示されます: EhCache、OSCache、SwarmCache など。独自の を作成CacheProviderし、実行時のクラスパスにスローして、Hibernate に独自の独自のキャッシュ システムを使用させることは可能ですか (SLF4J がロガー バインディングで行うように)。 ?

前もって感謝します!

4

1 に答える 1

2
  1. Hibernate がクラスパスのすべてのクラスをスキャンして、注釈付きのクラスを検出するように強制するためです。また、アプリケーションで使用したくないエンティティがクラスパスに含まれている可能性があるためです。または、一部のエンティティをセッション ファクトリに配置し、その他のエンティティを別のファクトリに配置することもできます。または、2 つの別個のセッション ファクトリ内の同じエンティティでさえあります。

  2. Criteria API には、パラメーターを直接バインドするメソッドがありますRestrictions.eq("someProperty", someValue);。たとえば、

  3. もちろん、独自の二次キャッシュを作成することもできますが、他のすべてのプロバイダーと同様に、それを使用するように Hibernate を構成する必要があります。クラスパスにクラスをドロップするだけでは不十分です。

于 2012-06-21T16:55:09.580 に答える