legacy-knowledge-base
公開されました Jul. 2, 2025

UserLocalServiceUtil クラスを使用してユーザーレコードを更新できない

written-by

Justin Choi

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • 根本的な問題は、DXP 7.1で user.persist(); を複数回使用して、 UserLocalServiceUtil クラスを使用してユーザーデータを更新しようとしている間に、 user.persist(); を複数回使用すると失敗することです。

失敗したコードの例。

  user = UserLocalServiceUtil.getUser(oUserReg.getUserId());
  user.setStatus(WorkflowConstants.STATUS_APPROVED
  user.setModifiedDate(cal.getTime());
  user.persist();
  user.setPasswordReset(false);
  user.persist();
 

環境への配慮

  • DXP 7.1

決議

  • このメソッドを使用してユーザを取得してからユーザレコードを更新する場合は、 user.persist() を一度だけ を使用する必要があります。 user.persist() コマンドは、返されたUserを常に2回目に無視して失敗します。
  • 代わりに、 user = UserLocalServiceUtil.updateUser(user) をうまく実行するためには、 user.persist(); を再度実行する必要があります。
did-this-article-resolve-your-issue

legacy-knowledge-base