特定のテーブルで実行された各アクションをログに記録したい。列レベル(すべてではなく一部)でログを記録したいので、特定の列の値が変更された場合、たとえば.
製品 x の価格はユーザー U によって変更されました
(価格と製品が同じテーブルにあると仮定します。)
このために、製品 x の価格列を監視したいと考えています。
ユーザーもログに記録したいので、トリガーを使用してこれを行うことはできません。ユーザー情報 atm はポータル アプリケーションにあります (それをトリガーに渡すことはできません)。
現在、apache cayenne を使用しており、更新前 (エンティティ クラス内) のコールバックで、(ユーザーがポータルで選択した) 新しい価格をデータベースにある価格と比較したいと考えています。
データベースから製品を取得しようとすると、カイエンは新しいオブジェクトを返さず、値が変更された同じオブジェクトを返します
Cayenne が同じ pk(id) の新しいオブジェクトを返す方法を誰かが知っているかどうか疑問に思っていました (これは、db から新しいオブジェクトを取得するために使用しているものです)
また
別の方法でアドバイスできますか