Service Builderを外部データベースに接続する
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
Liferay DXP以外のデータベースを使用したい場合があります。 これを行うには、そのデータソースを portal-ext.properties
定義するか、アプリサーバーでJNDIデータソースとして構成する必要があります。 このチュートリアルでは、 Service Builder をデータソースに接続する方法を示します。 方法は次のとおりです。
まず、ポータルプロパティを使用してデータソースを設定します。
ステップ1:データソースを指定する
アプリケーションサーバーがJNDIを使用してデータソースを定義する場合、この手順をスキップします。 それ以外の場合は、 portal-ext.properties
ファイルでデータソースを指定します。 jdbc.default以外のプレフィックスを指定して、Liferayのデフォルトデータソースと区別します。
この例では、プレフィックス jdbc.extを使用しています。
jdbc.ext.driverClassName=org.mariadb.jdbc.Driver
jdbc.ext.password=userpassword
jdbc.ext.url=jdbc:mariadb://localhost/external?useUnicode=true&characterEncoding=UTF-8&useFastDateParsing=false
jdbc.ext.username=yourusername
ステップ2:データソースを指すSpring Beanを作成する
これを行うには、Service Builderモジュールの src / main / resources / META-INF / spring / parent
フォルダーまたは従来のポートレットの WEB-INFに親コンテキスト拡張(例:<code>ext-spring.xml
)を作成します/ src / META-INF / parent フォルダー。 このフォルダーが存在しない場合は作成します。
次の要素を定義します。
-
データソースのデータソースファクトリSpring Bean。 タイプによって異なります。
-
JNDI:任意のプロパティプレフィックスを指定し、プレフィックスをJNDI名プロパティキーの先頭に追加します。 以下に例を示します。
<bean class="com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean" id="liferayDataSourceFactory"> <property name="propertyPrefix" value="custom." /> <property name="properties"> <props> <prop key="custom.jndi.name">jdbc/externalDataSource</prop> </props> </property> </bean>
-
ポータルのプロパティの:(例えば、プレフィックスと一致するプロパティのプレフィックスを指定します
。jdbc.extを
)あなたはで使用されるportal-ext.properties
。<bean class="com.liferay.portal.dao.jdbc.spring.DataSourceFactoryBean" id="liferayDataSourceFactory"> <property name="propertyPrefix" value="jdbc.ext." /> </bean>
-
-
データソースファクトリのSpring Beanを参照するLiferayデータソースBean。
-
LiferayデータソースBeanのエイリアス。
JNDIデータソースを指す ext-spring.xml
例を次に示し` 。
jdbc/externalDataSource
`
上記の liferayDataSourceFactory
は、 jdbc / externalDataSource
という名前のJNDIデータソースを参照しています。 データソースが portal-ext.properties
ファイルにある場合、Beanにはデータソースプロパティプレフィックスと一致する propertyPrefix
プロパティのみが必要です。
データソースBean liferayDataSource
は、 liferayDataSourceFactory
Beanを参照するBeanでオーバーライドされます。 オーバーライドは、このバンドル(モジュールまたは Webアプリケーションバンドル)のみに影響します。
エイリアス extDataSource
は、 liferayDataSource
データソースBeanを指します。
ステップ3:エンティティのデータソースを liferayDataSource
エイリアスに設定します
service.xml
ファイルで、エンティティのデータソースを、 ext-spring.xml
ファイルで指定した liferayDataSource
エイリアスに設定します。 以下に例を示します。
<?xml version="1.0"?>
<!DOCTYPE service-builder PUBLIC "-//Liferay//DTD Service Builder 7.1.0//EN"
"http://www.liferay.com/dtd/liferay-service-builder_7_1_0.dtd">
<service-builder package-path="com.liferay.example" >
<namespace>TestDB</namespace>
<entity local-service="true" name="Foo" table="testdata" data-source="extDataSource"
remote-service="false" uuid="false">
<column name="id" db-name="id" primary="true" type="long" />
<column name="foo" db-name="foo" type="String" />
<column name="bar" db-name="bar" type="long" />
</entity>
</service-builder>
例の <entity>
タグ属性に注意してください。
data-source
: liferayDataSource
エイリアス ext-spring.xml
指定します。
table
:エンティティのデータベーステーブル。
また、エンティティの <column>
には、列名に設定された db-name
属性が必要であることに注意してください。
ステップ4:Service Builderを実行する
Service Builder実行します。 これで、Service Builderサービスはデータソースを使用します。 あなたことができます ビジネスロジックでサービスを利用 あなたは関係なく、常に基になるデータソースの持っているとして。
おめでとうございます! Service Builderを外部データソースに接続しました。