2012-12-25 5 views
2

어떻게하면 스프링 감사를 사용하여 엔티티의 변경된 필드와 이전 값, 새로운 값을 가져올 수 있습니까?스프링 감사로 변경된 필드 가져 오기

엔티티에 대한 업데이트 된 필드 목록과 이전 로그와 새 로그 값을 가져 오려고했습니다. 업데이트하기 전에 getDeclaredFields를 사용하여 이전 엔티티와 새 엔티티를 비교하고 작동합니다. 그러나 몇 가지 주요하고 단순한 해결책이 있는지 궁금해하고있었습니다. 봄과 최대 절전 모드를 사용하여 내 엔티티를 관리하고 있습니다. 연구를 마친 후에 이벤트를 업데이트하고 이벤트의 getDirtyProperties를 사용하여 리스너를 추가하여 최대 절전 모드 세션을 사용할 수 있음을 발견했습니다. 하지만 그것은 최대 절전 트랜잭션 관리자를 필요로 이해, 나는 이미 JpaTransactionManager를 사용하고 그것을 변경할 수 없습니다.

그때 나는이 봄의 감사 기능 http://static.springsource.org/spring-data/data-jpa/docs/current/reference/html/#jpa.auditing 에 대해 들었다하고 getDirtyProperties 같은 것을 제공 할 수 있는지 질문은? 아니면 다른 해결책이 있습니까? 새 테이블을 만드는 것이 바람직하지 않기 때문에 스프링 감사를 위해서는 데이터베이스의 저장소 감사 데이터가 필요합니다.

+0

스프링 감사의 의미는 무엇입니까? 또한 각 감사 필드의 기록을 유지해야합니까? – izilotti

+0

세부 정보가있는 게시물이 업데이트되었습니다. 스프링이 객체에 대한 변경 필드를 가져 오는 도구를 가지고 있는지 알아야합니다. 감사 된 각 필드의 히스토리는 필요하지 않습니다. 어떻게 든 피할 수 있습니까? – me1111

답변

2

실제로는 스프링의 Auditable에는 데이터베이스에 저장해야하지만, 변경된 필드에 대한 세부 수준은 포함되어 있지 않습니다. Hibernate Envers이 작업을 수행하지만 데이터베이스의 감사 레코드 만 저장할 수 있다고 생각합니다. 당신은 출발점으로 그것을 사용할 수 있습니다.

+0

감사합니다. 도움이되었습니다. :) – me1111