問題
- 根本的な問題は、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();
を再度実行する必要があります。