0

私は Liferay-6 を使用しており、初心者です。

私の要件は、列がのPlayersという名前のテーブルがありID、そこからフロントエンドから選択されたものに基づいてすべての Player-name を取得する必要があることです。NameCategoryCategory

これにはLiferayを使用する必要があることを知っているServiceBuilderので、ファイルの作成中service.xmlにファインダーメソッドを使用する必要がありますか、それともそれなしで管理できますか?

あらかじめご了承ください。

4

2 に答える 2

1

ファインダーメソッドを使用する必要はありませんが、とにかく使用している場合は、ファインダーメソッドを利用してServiceBuilderいない点はわかりません。service.xml次のように数行書くだけです。

<finder name="Category" return-type="Collection">
    <finder-column name="category" case-sensitive="false" />
</finder>

ただし、もちろん使用していない場合は、service.xmlファインダーメソッドを使用できず、すべてを手動で行う必要があります。

ただし、使用している、service.xmlまたは使用を計画しているservice.xml場合は、1日の作業を節約できるため、必ずファインダーメソッドを使用してください。

于 2013-02-20T10:12:08.110 に答える
0

Service Builder を使用することに決めたので、Finders が最適な方法であることに同意します。

  1. service.xml の各 Finder は、playersLocalPersistence.findby.. メソッドへのアクセスを提供し、tat はプレイヤーのコレクションを返します。
  2. 何か他のもの (例: リスト playerNames) を取得したい場合は、PlayersLocalServiceImpl にメソッドを記述し、関数本体内で上記のファインダー関数を使用して、PlayersLocalServiceUtil からアクセスできるカスタム コレクションを返すことができます。
  3. とにかくfindByPrimaryファイダーが作成されます。たとえば、「ID」が主キーに設定されている場合、その属性に Finder を追加する必要はありません

実際には、カスタム クエリを記述する必要があるのは、複数のエンティティを検索する場合 (つまり、FROM クエリ パーツで複数のデータベース テーブルを使用する場合) だけです。それ以外の場合は、service.xml の Finder ノードが最適です。

于 2013-02-20T14:19:26.910 に答える