私はliferayポートレットを開発しています。ServiceBuilderを使用しています。問題は、エンティティフィールドでcompanyIDとgroupIDを使用する必要があるということです。これらのフィールドが必要ない場合はどうすればよいですか?それらを使用しない場合、resourceLocalService.addResources()メソッドをどのように使用できますか?
2 に答える
それらは必須ではありませんが、持っていると便利です。
Liferayには、権限、ユーザー、ドキュメントライブラリなど、使用できる多くの追加サービスがあります。これらのサービスは、ほとんどの場合、ポータルインスタンスにスコープされます。たとえば、ユーザーは、によって追跡されるインスタンスにスコープされcompanyId
ます。一部は、ドキュメントライブラリのようなグループにスコープされています。
したがって、使用する予定のLiferayサービスと、それらのサービスが動作する範囲によっては、使用しているサービスを呼び出すときに簡単に検索できるように、これらの値も保存しておくと便利です。
DBAチームがテーブルでこれらの2つの外部キーフィールドを指定しなかったことに注意してください。ただし、とにかくそれらを追加します。これを行うのは、DBAがテーブルを設計したときにLiferayの内部動作を知らなかったためです。
これらのフィールドはLiferayの内部にあり、インスタンス化できないポートレットのコンテキスト目的で使用されます。CompanyIdは、ユーザーがナビゲートしたポータルインスタンスに対応し、groupIdは、ユーザーがナビゲートしたコミュニティまたは組織に対応します。
これらのフィールド値をすべてのクエリのパラメータとして使用するため、ポートレットには、ポータル、コミュニティ、および組織ごとに異なるデータが含まれます。