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