TERASOLUNA Server Framework for Java (5.x) 用設定ファイル (リポジトリ層にJPAを利用する場合)

TERASOLUNA Server Framework for Java (5.x) のリポジトリ層にJPAを利用する場合、下記設定ファイルのの変更が必要となります。

テナントデータベース用の設定

  • classes/META-INF/spring/applicationContext-jpa.xmlファイルの編集を行います。

    1. <bean id=”jpaVendorAdapter”> において、テナントデータベースで利用するデータベースに合わせてdatabaseプロパティのvalue値に適切な値を設定してください。※初期設定では、PostgreSQLが設定されています。

      データベース

      databaseプロパティ値

      Oracle Database

      ORACLE

      PostgreSQL

      POSTGRESQL

      Microsoft SQL Server

      SQL_SERVER

      IBM DB2

      DB2

    <bean id="jpaVendorAdapter"
        class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
        <property name="showSql" value="false" />
        <property name="database">
            <value>POSTGRESQL</value>
            <!--
            <value>DB2</value>
            <value>DEFAULT</value>
            <value>HSQL</value>
            <value>INFORMIX</value>
            <value>MYSQL</value>
            <value>ORACLE</value>
            <value>POSTGRESQL</value>
            <value>SQL_SERVER</value>
            <value>SYBASE</value>
             -->
        </property>
    </bean>
    

    コラム

    検証済みのプロパティ値は上記4つとなります。その他指定可能なdatabaseプロパティ値については http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/orm/jpa/vendor/Database.html を参考にしてください。
    1. <bean id=”entityManagerFactory”> において、packagesToScanプロパティ のvalue値にエンティティクラス(@Entityアノテーションが付与されたクラス)が格納されたパッケージを指定してください。パッケージが複数ある場合は、カンマ区切りで指定してください。
    <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="packagesToScan" value="jp.co.intra_mart.framework.extension.spring.entity" />
        <property name="jtaDataSource" ref="dataSource" />
        <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
        <property name="jpaPropertyMap" ref="hibernateProperties" />
        <property name="persistenceUnitName" value="tenant" />
    </bean>
    

    コラム

    packagesToScanプロパティの初期設定では、”jp.co.intra_mart.framework.extension.spring.entity”パッケージが設定されています。このパッケージは例として記述しており、不要です。packagesToScanプロパティを指定する際には、このパッケージは削除してください。

シェアードデータベースを利用する場合の設定

  • classes/META-INF/spring/applicationContext-jpa.xmlファイルの編集を行います。

    1. applicationContext-jpa.xml の下記コメントアウトをはずして、packagesToScanプロパティとjtaDataSourceプロパティを設定してください。packagesToScanプロパティ のvalue値にエンティティクラス(@Entityアノテーションが付与されたクラス)が格納されたパッケージを指定してください。パッケージが複数ある場合は、カンマ区切りで指定してください。jtaDataSourceプロパティには、applicationContext-im_tgfw_common.xmlファイルで登録したシェアードデータソースのBeanのidを指定してください。
    <bean id="sharedEntityManagerFactory" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="packagesToScan" value="jp.co.intra_mart.framework.extension.spring.entity" />
        <property name="jtaDataSource" ref="sharedDataSource" />
        <property name="jpaVendorAdapter" ref="jpaVendorAdapter" />
        <property name="jpaPropertyMap" ref="hibernateProperties" />
        <property name="persistenceUnitName" value="shared" />
    </bean>
    

    コラム

    packagesToScanプロパティの初期設定では、”jp.co.intra_mart.framework.extension.spring.entity”パッケージが設定されています。このパッケージは例として記述しており、不要です。packagesToScanプロパティを指定する際には、このパッケージは削除してください。

    コラム

    複数のシェアードデータベースを利用する場合は、beanタグをそれぞれ定義し、beanのid属性値とpersistenceUnitNameプロパティがそれぞれ一意になるように設定してください。