エンティティを取得およびカウントするメソッドの実装
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、こちらまでご連絡ください。
Service Builderは、 service.xml
ファイルの ファインダー基づいて、 個のfindBy *
メソッドと 個のcountBy *
メソッドを * Persistence
クラス に生成します。 ローカルサービスのファインダーメソッドを活用して、エンティティを取得およびカウントできます。
基準に一致するエンティティの取得から始めます。
ゲッターメソッド
findByPrimaryKey
メソッドと findBy *
メソッドは、条件に基づいてエンティティインスタンスを検索して返します。 ローカルサービスの実装は、必要なものを取得するファインダーメソッドへの呼び出しのみをラップする必要があります。
ID(主キー)に基づいてエンティティを取得するメソッドを作成する方法は次のとおりです。
-
この形式を使用してメソッドを作成します。
public [ENTITY] get[ENTITY_NAME](long id) { return [ENTITY]Persistence.findByPrimaryKey(id); }
-
[ENTITY]
および[ENTITY_NAME]
をそれぞれのエンティティタイプとエンティティ名(またはニックネーム)に置き換え` 。
Service Builderを実行して、メソッドをローカルサービスインターフェイスに伝達します。
基準に基づいてエンティティを取得する方法は次のとおりです。
エンティティインスタンスを見つけるための基準を特定します。
基準に
finder` 要素
がない場合は、その要素を作成してService Builderを実行します。-
呼び出す
* Persistence
classfindBy *
メソッドを決定します。ファインダー
要素の列によっては、Service Builderがメソッドをオーバーロードしてこれらのパラメーターを含める場合があります。int start
およびint end
の範囲のエンティティを指定するパラメーター。com.liferay.portal.kernel.util.OrderByComparator orderByComparator
一致するエンティティを配置するためのパラメーター。
-
get *
メソッドシグネチャを指定し、* Persistence
クラスfindBy *
メソッドパラメーターを必ず満たしてください。 次のメソッド形式を使用します。public List <[ENTITY]> get[DESCRIBE_THE_ENTITIES](...){ }
[ENTITY]
をエンティティタイプに置き換え。 <code>[DESCRIBE_THE_ENTITIES]
を、取得するエンティティのわかりやすい名前に置き換えます。 -
* Persistence
classfindBy *
メソッドを呼び出して、一致するエンティティのリストを返します。 -
Service Builderを実行します。
たとえば、メソッド
getGroupEntries
fromBookmarksEntryLocalServiceImpl
は、Group
プライマリキーに関連付けられたBookmarksEntry
の範囲を返します。public List<BookmarksEntry> getGroupEntries( long groupId, int start, int end) { return bookmarksEntryPersistence.findByG_S( groupId, WorkflowConstants.STATUS_APPROVED, start, end, new EntryModifiedDateComparator()); }
ワークフローに関連付けられている
BookmarksEntry
のうち、このメソッドは承認されたもの(WorkflowConstants.STATUS_APPROVED
)のみに一致します。 新しいEntryModifiedDateComparator
を使用して、一致するBookmarksEntry
を変更日順に並べます。これで、ファインダーメソッドを活用してエンティティを取得する方法がわかりました。 エンティティをカウントするメソッドが次にあります。
カウンターメソッド
エンティティのカウントは、取得するのと同じくらい簡単です。
* Persistence
classcountBy *
メソッドがすべての作業を行います。 Service Builderは、各ファインダーとその列に基づいてcountBy *
メソッドを生成します。-
カウントしているエンティティインスタンスの基準を特定し、基準を満たす
* Persistence
classcountBy *
メソッドを決定します。 -
この形式に従って、
get * Count
メソッドシグネチャを作成します。public int get[DESCRIBE_THE_ENTITIES]Count(...) { }
[DESCRIBE_THE_ENTITIES]
を、カウントするエンティティのわかりやすい名前に置き換えます。 -
* Persistence
クラスのcountBy
メソッドを呼び出し、値を返します。 たとえば、メソッドgetEntriesCount
fromBookmarksEntryLocalServiceImpl
は、ワークフローステータスがステータス
で、グループ(一致するgroupId
)およびフォルダー(一致する)に関連付けられた <code>BookmarksEntry
の数を返します。 folderId)。public int getEntriesCount(long groupId, long folderId, int status) { return bookmarksEntryPersistence.countByG_F_S( groupId, folderId, status); }
これで、ローカルサービスは条件に一致するエンティティを取得し、素早いエンティティカウントを返すことができます。
関連トピック
-