5

データベース内の既存のユーザーの情報をプログラムで更新する必要があります。Liferay データベースの user_ テーブルのユーザー名の生年月日の値を更新する必要があります。基本的に、更新クエリを実行する必要があります。

4

4 に答える 4

5

これは、ポートレット コードでこれを行う必要があるか、DB に直接クエリを送信して行う必要があるかによって異なります。

Liferay は基本的にすべてをキャッシュするため、ポータルの実行中に Liferay データベースのレコードを更新すると、ほとんどの場合、そのレコードは既にキャッシュにあるため、新しい列の値はまったく読み取られません。[コントロール パネル] -> [サーバー管理] に移動して、データベース キャッシュをクリアする必要があります。

反対に、ポートレット コードでそのようなことを行う必要がある場合は、Liferay サービスのメソッドの 1 つを呼び出す必要があります。ユーザーを更新しようとしているので、メソッドを呼び出す必要がありますUserLocalServiceUtil.updateUser(またはUserServiceUtil.updateUser、権限も確認したい場合)。いくつかの異なるupdateUserメソッドがあることがわかります。そのうちの 1 つは多くのパラメーターを持ち、別のメソッドはパラメーターとして Bean のみを持ちます。最初のものにはすべてのビジネス ロジック (検証、インデックスの再作成、関連するエンティティの更新など) が含まれていますが、2 番目のものは自動生成されただけであり、使用しないでください (自分が何をしているのかが完全にわかっている場合を除きます)。そのため、その列の値を変更したくない場合は、多くのパラメーターを指定してメソッドを使用し、単純にuser.getCOLUMN()(例: ) を渡します。user.getFacebookId()

それが役に立てば幸いです、そして私の下手な英語で申し訳ありません...

于 2013-05-06T08:35:08.917 に答える