[java] Hibernate Envers에서 Audited Entity의 변경 이력을 어떻게 조회하나요?
Audited Entity를 생성하기 위해서는 해당 엔티티 클래스에 @Audited
어노테이션을 추가해야 합니다. 이 어노테이션은 Envers에게 해당 엔티티의 변경 이력을 추적하도록 지시합니다. 예를 들면 다음과 같습니다:
import org.hibernate.envers.Audited;
@Entity
@Audited
public class Product {
// 엔티티의 필드와 메소드들...
}
이제 Audited Entity의 변경 이력을 조회하기 위해서는 AuditReader
인터페이스를 사용해야 합니다. 이 인터페이스는 Hibernate Envers의 핵심 API입니다. 예를 들어 특정 엔티티의 변경 이력을 조회하려면 다음과 같이 합니다:
@Autowired
private EntityManager entityManager;
public List<Number> getRevisionsForProduct(Product product) {
AuditReader auditReader = AuditReaderFactory.get(entityManager);
List<Number> revisions = auditReader.getRevisions(Product.class, product.getId());
return revisions;
}
위의 코드에서 getRevisions()
메서드는 Product
엔티티의 변경 이력을 조회하고 각 변경 이력의 식별자를 반환합니다. 이 식별자를 사용하여 변경 이력의 내용을 상세히 조회할 수도 있습니다.
Hibernate Envers를 사용하여 Audited Entity의 변경 이력을 조회하는 법에 대해 알아보았습니다. 자세한 내용은 Hibernate Envers 공식 문서를 참고하시기 바랍니다.