TERASOLUNA Server Framework for Java (5.x) 用設定ファイル (リポジトリ層にJPAを利用する場合)¶
TERASOLUNA Server Framework for Java (5.x) のリポジトリ層にJPAを利用する場合、下記設定ファイルのの変更が必要となります。
テナントデータベース用の設定¶
classes/META-INF/spring/applicationContext-jpa.xmlファイルの編集を行います。
<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 を参考にしてください。
- <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ファイルの編集を行います。
- 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プロパティがそれぞれ一意になるように設定してください。