0

liferay のすべてのユーザーのメールアドレスを取得したい...
次のコードを使用しました..

DynamicQuery dynamicQuery = UserLocalServiceUtil.dynamicQuery();
dynamicQuery.add(RestrictionsFactoryUtil.isNotNull("emailAddress"));
int startOfList = 0;
int endOfList = 100;
List<User> articles = (List<User>) UserLocalServiceUtil.dynamicQuery(dynamicQuery, startOfList, endOfList);

誰かが私がどこで間違いを犯しているのか教えてもらえますか?

私は得ています:

  1. java.lang.InstantiationException
  2. com.liferay.portal.kernel.deploy.hot.HotDeployException: Error registering portlets for ControlPanelPortlet-portlet.

ControlPanelPortlet は、私のポートレットの名前です。

4

2 に答える 2

2

すべてのユーザーの電子メール アドレスのリストだけを取得する場合は、次のコードを使用できます。

DynamicQuery dynamicQuery = UserLocalServiceUtil.dynamicQuery();

dynamicQuery.add(RestrictionsFactoryUtil.isNotNull("emailAddress"));

// this is the statement which would cause to return only a list of emails
dynamicQuery.setProjection(ProjectionFactoryUtil.property("emailAddress"));

int startOfList = QueryUtil.ALL_POS;

int endOfList = QueryUtil.ALL_POS; // this will fetch all the Users

// note: it returns a list of String
List<String> emailAddresses = (List<String>) UserLocalServiceUtil.dynamicQuery(dynamicQuery, startOfList, endOfList);

sを取得したい場合は、コーディングは問題ありません。andフィールドをUser変更するだけです。startOfListendOfList

DynamicQuery dynamicQuery = UserLocalServiceUtil.dynamicQuery();

dynamicQuery.add(RestrictionsFactoryUtil.isNotNull("emailAddress"));

int startOfList = QueryUtil.ALL_POS;

int endOfList = QueryUtil.ALL_POS;

List<User> users = (List<User>) UserLocalServiceUtil.dynamicQuery(dynamicQuery, startOfList, endOfList);

または、条件をチェックせずに s をフェッチしたい場合は、User次を使用します。

List<User> users = UserLocalServiceUtil.getUsers(startOfList, endOfList);

また、表示されている例外に関しては、投稿したコードとは関係ありません。これらは、Java クラスまたは JSP の他のコードが原因である可能性があります。完全なスタック トレースを入力していただければ、私たちがお手伝いできる可能性があります。

于 2013-05-03T12:41:20.793 に答える
1

このコードを試してください..

List<User> users = UserLocalServiceUtil.getUsers(0, UserLocalServiceUtil.getUsersCount());

for(User user : users) {
     System.out.println(user.getEmailAddress());
}

何か問題がありましたらお知らせください

于 2013-05-03T06:39:34.840 に答える