Service Builderを使用した段階的モデルの生成
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
ステージングモデルは、アプリケーションにステージングフレームワークとエクスポート/インポートフレームワークを実装するための重要な構成要素です。 アプリのステージングモデルを手動で作成する代わりに、 Service Builder を活用して、必要なステージングモデルロジックを生成できます。 このチュートリアルに入る前に、ステージングされたモデルの仕組みについての情報を得るために、 ステージングされたモデルを理解する チュートリアルを必ず読んでください。 また、アプリでLiferayのService Builderを使用しない場合は、プロジェクトで設定する必要があります。 これを行うのに支援が必要な場合は、「Service Builder でオブジェクトリレーショナルマップを定義する
チュートリアル」に従ってください。
このチュートリアルでは、 * api
および * service
モジュールのService Builderプロジェクトがあることを前提としています。 このチュートリアルを読みたい場合は、 staged-model-example Service Builderプロジェクトをダウンロードしてください。 これは、Service Builderの実行によって生成されたステージング関連の変更を確認するためにテストできる最低限のプロジェクトです。 このチュートリアルは、プロジェクトがGradleでビルドされていることを前提としています。 サンプルプロジェクトの service.xml
ファイルには、次の構成が含まれています。
<service-builder package-path="com.liferay.docs">
<namespace>FOO</namespace>
<entity local-service="true" name="Foo" remote-service="true" uuid="true">
<!-- PK fields -->
<column name="fooId" primary="true" type="long" />
<!-- Group instance -->
<column name="groupId" type="long" />
<!-- Audit fields -->
<column name="companyId" type="long" />
<column name="createDate" type="Date" />
<column name="modifiedDate" type="Date" />
...
...
</entity>
</service-builder>
簡単にするために、エンティティモデルファイルに適用されたService Builderで生成された変更を追跡して、ステージングされたモデルがエンティティにどのように割り当てられるかを観察します。 各段階モデルに必要な特定の 段階属性 に留意してください。 service.xml
ファイルで定義されている属性に応じて、Service Builderはエンティティモデルを特定の段階的なモデルタイプに割り当てます。
-
コマンドラインでプロジェクトの
* service
モジュールに移動します。 Service Builder(例:gradlew buildService
)を実行して、現在のservice.xml
構成に基づいてプロジェクトのモデルを生成します。 -
プロジェクトの
[Entity]Model.java
インターフェイスを開き、継承されたインターフェイスを確認します。public interface FooModel extends BaseModel<Foo>, ShardedModel, StagedModel {
モデルが段階的モデルとして生成されました\! UUIDに設定されているからである 真
及び 企業ID
、 CREATEDATE
、及び modifiedDate
列が定義されています。 背後でアプリに対して生成されるロジックははるかに多くありますが、これは、Service Builderがエンティティをステージングフレームワークおよびエクスポート/インポートフレームワークに適格と見なしたことを示しています。
-
userId
およびuserName
列をservice.xml
ファイルに追加します。<column name="userId" type="long" /> <column name="userName" type="String" />
-
Service Builderを再実行し、
[Entity]Model.java
インターフェイスをもう一度観察します`
public interface FooModel extends BaseModel, GroupedModel, ShardedModel,
StagedAuditedModel {
`
これで、モデルは段階的な監査モデルになりました\!
5 lastPublishDate
列を service.xml
ファイルに追加します。
<column name="lastPublishDate" type="Date" />
6 Service Builderを再実行し、 [Entity]Model.java
インターフェイスをもう一度観察します`
public interface FooModel extends BaseModel, ShardedModel,
StagedGroupedModel {
`
これで、モデルは段階的なグループ化モデルになりました! StageId
列は、 StagedGroupedModel
インターフェースを拡張するためにも必要ですが、元の service.xml
ファイルで既に定義されていました。
ファンタスティック\! Service Builderを使用して段階的モデルを生成することがどれほど簡単かを直接目にしました。