問題タブ [javers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javers - ID が NULL のエンティティを NEW として扱う
「エンティティIDで差分を保存する」という質問に対して、次の回答が見つかりました。
「エンティティの場合、Id プロパティを null にすることはできないため、このクラスを ValueObject としてマップする必要があります。その場合、Id プロパティは通常のプロパティとして扱われ、このオブジェクトの GlobalId には移動しません。」
私の質問は:
Id が NULL の場合、エンティティを NEW として扱うことができないのはなぜですか?
データベースからフェッチされたオブジェクト グラフがあり、2 つの javas コミットの間にエンティティがグラフのリストに追加されます。
- 2 つのコミットと 2 番目のコミットには新しいエンティティがあります (ID NULL)
- Java は GlobalId を作成できないため、change => 例外を取得します。
EntityManager - persist (Id:s を作成) を実行することでこれを回避できますが、それは避けたいと思います。現在のコードは、後で永続化するか、トランザクションを終了させるだけです。
Id が NULL であるため、エンティティは NEW です。GlobalId を作成できるように、一意の一時 ID (Id = NULL を許可) を生成することは可能でしょうか? 変更リストでは、エンティティは NEW として報告されます。以前のコミットと比較する必要はありません。
javers - Javars "jv_commit" が存在しません
プロジェクトで Java をセットアップしようとしています。私は Hibernate JPA を使用していますが、すべてが正しく構成されていると思います。
これが私の春の設定です:
JavarsAuditController Bean:
JPA アノテーションはエンティティのアクセサーにあるため、BEAN マッピング スタイルを使用する必要があります。
JavarsRepoConnectionProvider Bean は次のとおりです。
}
手動監査を行っています。つまり、エンティティが保存されるたびに、javars.commit() メソッドを呼び出しています。たまたま、最初に保存しようとすると、テーブル「jv_commit」が存在しないことを示す MySQL 構文エラーが発生します。ドキュメントには、必要なテーブルが自動的に作成されると記載されているため、何か不足しているに違いありません。あらかじめご了承ください。
切り捨てられたスタック トレース:
javers - javars の初心者、差分からすべてのプロパティ名を反復して取得する方法
私はジャバーの初心者です。
異なるすべてのプロパティのリストを取得する必要があるプロパティを持つ 2 つの同じオブジェクトがあります。
これは動作します
とディスプレイ
change=ValueChange{globalId:'com.stuff.Member/', property:'currentRank', oldVal:'Friend12', newVal:'Dimaon'}
簡単だと思いますが、Change のプロパティにアクセスするにはどうすればよいですか?
それとも、差分を考えて別の方法で反復する必要がありますか?
私の最終目標は、異なるプロパティのリストを取得することです。
ありがとう