ExpandoValue
Liferay 5.2.x では、インスタンス/レコードの変更をトリガーした何かを行ったユーザーのユーザーまたはユーザー ID を取得しようとしています。これは可能ですか?
ExpandoTable
カスタム アトリビュート/expando データ モデルは、 、ExpandoColumn
、ExpandoRow
、 で表されExpandoValue
ます。 ExpandoValue
誰が最後に変更したかを追跡するフィールドがないようです。追加するにはどうすればよいですか?これは良い考えですか?
または、ExpandoValueListener
モデル リスナーがあります。ただし、モデル リスナーは特定のリクエストから切り離されているように見えます。これは、リスナー メソッドがモデルの変更に対して「反応的に」起動されるためです。インターフェイスのどのメソッド ヘッダーにModelListener
も、いかなる種類の Request も、ServiceContext (Request から構築されたもの) も含まれていません。
それでも、Request、ServiceContext、または ModelListener メソッド (おそらくメソッドの 1 つ) 内から現在の UserId を取得するための他のメカニズムにアクセスする方法はありonBefore*()
ますか? 私は何人かの人々が使用を推奨しているのを見てきましたが、それは時々PrincipalThreadLocal
返されるようnull
です.
何か案は?代わりにボタンのクリックをトラップする必要がありますか? DBトリガーやモデルリスナーなどよりも面倒で維持するのが難しいので、私はそれを避けようとしています。
前もって感謝します!