0

Liferay ServiceBuilder を使用していくつかのサービスを開発しましたが、属性を使用するポイントを理解しているかどうかはよくわかりません。

  1. ユーザーID
  2. 会社ID
  3. groupId これらの属性は、PortalRequest を通じて使用できることに注意してください。

基本的なチュートリアルに従って、すべてのエンティティに対してこれらの属性を作成し、それらを「追加」関数に設定するように注意するよう指示されます。しかし、考えてみると、これらの属性がデータ検索 (Finder メソッド、動的クエリ、カスタム クエリのいずれか) で使用されているチュートリアルや参照コードを見たことがありません。

では、この情報を保持することのポイントは何ですか?

  1. これらの属性は、なんらかの規則または範囲の下で自動的に使用されますか? PortalRequest を介して利用できる場合、Liferay のデフォルトの Finder はそれらを使用しますか?

  2. または、すべての Select でそれらを使用するのは開発者次第ですか。たとえば、すべての単一パラメーター Finder は、複数インスタンスのポータルでは実質的に役に立ちません (すべての Finder メソッドで companyId 属性を使用する必要があるため) ?

  3. それとも、データベースの拡張性、監査、インデックス作成、または私が完全に見逃している何かのためにこの構造を維持することは良い習慣ですか?

4

2 に答える 2

1

これらの属性は、ステージング環境などでエンティティを使用する場合に必要です。groupId は、エンティティが属する環境を指定します。userId の意味は明らかで、companyId はサイト識別子です。したがって、ステージング環境がある場合、1 つのポータルに複数のサイトがある場合、これらの属性は非常に重要です。有効化など

于 2015-01-09T09:17:33.680 に答える
0

新しいテーブルがあり、テーブルに UserId を設定したい場合は必要ですが、それ以外の場合、これらの属性は必要ないと思います。サービスビルダーを作成しました

<entity name="FaoEsalesCustomer" local-service="true" remote-service="false" table="fao_esalecustomer">
    <!-- PK fields -->
    <column name="esaleCustomerId" type="long" primary="true" />
    <!-- Audit fields -->
    <column name="createdBy" type="long" />
    <column name="createdOn" type="Date" />
    <column name="modifiedBy" type="long" />
    <column name="modifiedOn" type="Date" />        
    <!-- Other fields -->
    <column name="customerName" type="String" />
    <column name="address" type="String" />
    <column name="ph" type="Integer" />
    <column name="categoryId" type="long" />
    <column name="categoryName" type="String" />
    <column name="quantity" type="Double" />
    <column name="price" type="Double" />
</entity>
于 2013-02-27T15:23:32.933 に答える