10.6. Hibernate フィルタの使用
フィルタ は Hibernate 固有の最も便利な機能です。 フィルタによりデータベース内のデータ表示に制限を与えることができます。 フィルタについては Hibernate のドキュメントで詳細に説明されています。本項ではフィルタを Seam に統合する簡単で効果的な方法を記載します。
Seam 管理永続コンテキストには定義したフィルタの一覧を持たせることができます。
EntityManager や Hibernate Session が初めて作成されたときは常に有効になります (Hibernate が永続を実現する構成要素である場合にのみ使用できます)。
<persistence:filter name="regionFilter">
<persistence:name>region</persistence:name>
<persistence:parameters>
<key>regionCode</key>
<value>#{region.code}</value>
</persistence:parameters>
</persistence:filter>
<persistence:filter name="currentFilter">
<persistence:name>current</persistence:name>
<persistence:parameters>
<key>date</key>
<value>#{currentDate}</value>
</persistence:parameters>
</persistence:filter>
<persistence:managed-persistence-context name="personDatabase"
persistence-unit-jndi-name="java:/EntityManagerFactories/personDatabase">
<persistence:filters>
<value>#{regionFilter}</value>
<value>#{currentFilter}</value>
</persistence:filters>
</persistence:managed-persistence-context>