27.3. 使い方
Hibernate Search はアノテーションを使ってエンティティを Lucene のインデックスにマップします。 詳細については リファレンスマニュアル を参照してください。
Hibernate Search は API および JPA や Hibernate のセマンティックと完全に統合されています。 HQL ベースまたは検索条件ベースの問い合わせからの切り替えにはほとんどコードを必要としません。 アプリケーションは主に Hibernate の
Session のサブクラスとなる FullTextSession API と連携します。
Hibernate Search が存在する場合は、JBoss Seam は
FullTextSession をインジェクトします。
注記
ここでは、
FullTextSession が org.hibernate.Session を拡張しているため通常の Hibernate Session として使用することができます。
JPA を使用した場合、より円滑な統合が提案されます。
FullTextEntityManager は Hibernate Search が存在するところにインジェクトされます。 FullTextEntityManager は検索固有のメソッドで EntityManager を拡張します。 同様にして FullTextSession は Session を拡張します。
EJB 3.0 Session またはメッセージ駆動型 Beanのインジェクションが使用される場合 (つまりインジェクションが
@PersistenceContext アノテーションを使用) は、宣言ステートメント内で FullTextEntityManager インターフェースを使うことで EntityManager インタフェースの置換はできません。 ただし、 インジェクトされる実装は FullTextEntityManager 実装になり、 ダウンキャストが可能です。
注記
Seam の外側で Hibernate Search を使用するのに慣れている方は、 Hibernate Search が Seam と統合されるときは
Search.createFullTextSession を使用する必要がないことを覚えておいてください。
Hibernate Search の作業サンプルについては JBoss Seam ディストリビューションの Blog サンプルか DVDStore をご確認ください。