2

私はliferayポートレットを開発しています。ServiceBuilderを使用しています。問題は、エンティティフィールドでcompanyIDとgroupIDを使用する必要があるということです。これらのフィールドが必要ない場合はどうすればよいですか?それらを使用しない場合、resourceLocalService.addResources()メソッドをどのように使用できますか?

4

2 に答える 2

6

それらは必須ではありませんが、持っていると便利です。

Liferayには、権限、ユーザー、ドキュメントライブラリなど、使用できる多くの追加サービスがあります。これらのサービスは、ほとんどの場合、ポータルインスタンスにスコープされます。たとえば、ユーザーは、によって追跡されるインスタンスにスコープされcompanyIdます。一部は、ドキュメントライブラリのようなグループにスコープされています。

したがって、使用する予定のLiferayサービスと、それらのサービスが動作する範囲によっては、使用しているサービスを呼び出すときに簡単に検索できるように、これらの値も保存しておくと便利です。

于 2012-11-14T17:49:27.380 に答える
1

DBAチームがテーブルでこれらの2つの外部キーフィールドを指定しなかったことに注意してください。ただし、とにかくそれらを追加します。これを行うのは、DBAがテーブルを設計したときにLiferayの内部動作を知らなかったためです。

これらのフィールドはLiferayの内部にあり、インスタンス化できないポートレットのコンテキスト目的で使用されます。CompanyIdは、ユーザーがナビゲートしたポータルインスタンスに対応し、groupIdは、ユーザーがナビゲートしたコミュニティまたは組織に対応します。

これらのフィールド値をすべてのクエリのパラメータとして使用するため、ポートレットには、ポータル、コミュニティ、および組織ごとに異なるデータが含まれます。

于 2014-02-08T13:03:00.410 に答える