Service Builderを外部データベースに接続する

Service Builderを外部データベースに接続する

ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。

Liferay DXP以外のデータベースを使用したい場合があります。 これを行うには、そのデータソースを portal-ext.properties 定義するか、アプリサーバーでJNDIデータソースとして構成する必要があります。 このチュートリアルでは、 Service Builder をデータソースに接続する方法を示します。 方法は次のとおりです。

  1. データソースを指定します。

  2. データソースを指すSpring Beanを作成します。

  3. エンティティのデータソースを liferayDataSource エイリアスに設定します。

  4. 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 フォルダー。 このフォルダーが存在しない場合は作成します。

次の要素を定義します。

  1. データソースのデータソースファクトリ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>
      
  2. データソースファクトリのSpring Beanを参照するLiferayデータソースBean。

  3. 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-sourceliferayDataSource エイリアス ext-spring.xml 指定します。

table:エンティティのデータベーステーブル。

また、エンティティの <column>には、列名に設定された db-name 属性が必要であることに注意してください。

ステップ4:Service Builderを実行する

Service Builder実行します。 これで、Service Builderサービスはデータソースを使用します。 あなたことができます ビジネスロジックでサービスを利用 あなたは関係なく、常に基になるデータソースの持っているとして。

おめでとうございます! Service Builderを外部データソースに接続しました。

関連トピック

JNDIデータソースへの接続

サービスビルダー

Service Builderの実行と生成されたコードの理解

Service Builderを使用したビジネスロジック

« service.propertiesの構成カスタムSQL »
この記事は役に立ちましたか?
1人中0人がこの記事が役に立ったと言っています