2016-08-11 2 views
3

사이의 차이보기는이 세 가지 주제에 의해 다음은 내가 해결책을 찾고최대 절전 모드 Envers - 수정

  1. Getting the old value and new value between two revisions with Hibernate Envers
  2. Diff on hibernate envers revisions
  3. Hibernate Envers : How to check if a field has changed between two revisions?

는 (비교하고 차이보기 위해 추가 된/편집 된/삭제 된) 개체의 두 개정 사이. 당신은 내가 감사 테이블에 MainEntity (MainEntityCounter뿐만 아니라 태그)를 추가 볼 수 있습니다처럼

@Entity 
@Table(name = "MAIN_ENTITY") 
@Audited 
public class MainEntity implements Serializable { 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    @Column(name = "ID") 
    private Long id; 

    @Column(name = "NAME") 
    private String name; 

    @Column(name = "SHORT_NAME") 
    private String shortName; 

    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY, optional = false) 
    @JoinColumn(name = "MAIN_ENTITY_COUNTER_ID") 
    private MainEntityCounter mainEntityCounter; 

    @OneToMany(cascade = CascadeType.ALL, mappedBy = "mainEntity", fetch = FetchType.LAZY, orphanRemoval = true) 
    @JsonManagedReference 
    @OrderBy 
    private Set<Tag> tags = new HashSet<Tag>(); 

    // getters and setters ... 
} 

, 그래서 나는 그 객체의 역사를 추적하고 있습니다 :

내가 엔티티 아래와 같이 있다고 가정하자.

AuditReader reader = AuditReaderFactory.get(em); 
    MainEntity mainEntityStart = reader.find(MainEntity.class, mainEntityId, startRevision.intValue()); 

    MainEntity mainEntityEnd = reader.find(MainEntity.class, mainEntityId, endRevision.intValue()); 

내가 객체 mainEntityStartmainEntityEnd를 비교하는 가장 좋은 방법/접근 무엇인지 전혀 모른다 그러나 : 나는 특정 개정 데이터베이스에서 개체의 상태를 얻는 방법을 발견했다.

Java 객체에서 JSON 객체 (또는 다른 종류의 트리 구조) 로의 변환에 대해 생각했지만 좋은 접근 방식인지는 확실하지 않습니다.

  1. Hibernate Envers가 객체 간의 차이점을 보여주는 API를 제공하는지 알고 있습니까?
  2. 차이점을 확인하는 가장 좋은 방법은 무엇인지 알고 계십니까?

도움 주셔서 감사합니다.

답변

1

기능적 관점에서 묻는 것은 HHH-8058 호 문제 일 가능성이 큽니다.

귀하와 다른 사람들이 자유롭게 투표를하고, 사용 사례에 가장 적합하도록 설계된 API를보고 싶은 방법에 대한 의견을 제공 할 것을 적극 권장합니다.

관련 문제