2017-06-22 11 views
0

私は春と休止状態のプロジェクトを持っていますので、テーブルとその正常に動作していますが、私の問題は新しいレコードの作成時に監査を避けたいです私のコード休止状態のEnversを使用して不要な監査を回避する方法

エンティティ以下の監査:

@Entity 
@Table(name = "building") 
@Audited 
public class BuildingClass extends CommonTableFields { 
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "BID") 
    @JsonProperty 
    private long id; 

    @JsonProperty 
    private String username; 

    @JsonProperty 
    private double count; 
    //getters and setters 
} 

は、実装: //ここで私が監査したくない

@Override 
public void save(BuildingClass buildingclass) { 
     repo.save(buildingclass) 
} 

//ここで私はあなたの監査のために使用してどのような戦略に依存しようとしている事前

+0

https://stackoverflow.com/questions/12800540/hibernate-envers-how-to-store-only-updated-valuesを参照してください。 – Sudhakar

答えて

1

@Override 
public void update(BuildingClass buildingclass) { 
     repo.save(buildingclass) 
} 

感謝を監査します。

DefaultAuditStrategyは、イベントリスナーpost-insertを登録しないだけで動作します。特定のイベントハンドラを登録していない独自のenversインテグレータを登録することでこれを行います。

ValidityAuditStrategyは少し問題になります。ここで問題となるのは、この戦略では、行が変更され、それらの操作で最初の挿入監査行が存在すると予想され、そうでない場合は失敗するときに一連の更新操作が内部的に実行されることです。

このチェックを無効にするカスタム戦略でこの戦略をオーバーライドできますが、仮定を使用するのではなく監査行のデータ問題を検出するためのチェックが追加されたことを理解してください。

しかし、このすべての鍵は条件付き監査です。詳細については、リファレンスドキュメントを参照してください。

関連する問題