2014年4月28日月曜日

Hibernate Session スコープ戦略 2/3 (OSIV設定編)

意外と見られていたので、放置しておいてた Hibernnate の記事を追記していきます。
別のサイトに書いて置いたものをここに持ってきただけですけどね。

OSIV と FMP の設定方法について説明していきます。 OSIV, FMP どちらも Spring の設定方法自体は簡単です。 Open Session In View (OSIV) の設定方法 まず Open Session In View (OSIV) ですが、 Spring には 2つの解決方法があります。
  1. OpenSessionInViewFilter
  2. OpenSessionInViewInterceptor
OpenSessionInViewInterceptor は Spring MVC を利用する場合に使えるクラスです。 よって、 Spring Web Flow を使うときは、 1. OpenSessionInViewFilter になります。 その設定方法ですが、 JPA を利用する場合は、以下のような設定を web.xml に記述するだけです。
<filter>
    <filter-name>oemivFilter</filter-name>
    <filter-class>
        org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
    </filter-class>
    <init-param>
        <param-name>entityManagerFactoryBeanName</param-name>
        <param-value>reportsEntityManagerFactory</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>oemivFilter</filter-name>
    <!-- ↓このパターンは利用する画面のURLに合わせてください -->
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>
<>タグ記号の変換ってめんどくさい...。 JPA なしの Hibernate だけで利用する場合は、以下のような設定を web.xml に記述します。 Filter クラスが変わるだけですね。
<filter>
    <filter-name>oemivFilter</filter-name>
    <filter-class>
        org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter
    </filter-class>
    <init-param>
        <param-name>entityManagerFactoryBeanName</param-name>
        <param-value>reportsEntityManagerFactory</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>oemivFilter</filter-name>
    <!-- ↓このパターンは利用する画面のURLに合わせてください -->
    <url-pattern>*.jsp</url-pattern>
</filter-mapping>
これらの説明はなぜか Reference には書いておらず JavaDoc にしか記述がありません。 FMP 戦略にするなら、この設定は不要です。 これで、 OSIV の設定は終わりで、自動にビューレンダリングまで Session を開いてくれます。

T.B.C.

0 件のコメント:

コメントを投稿

Scala on VSCode

Scala on VSCode ===================== Docker を利用した VSCode remote development 上で Scala 開発をする方法 Links ========== ## Scala on VSCode remote...