<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.javers</groupId> <artifactId>javers-spring-boot-starter-sql</artifactId> <version>3.1.0</version> </dependency>
javers: mappingStyle: FIELD algorithm: LEVENSHTEIN_DISTANCE prettyPrint: true typeSafeValues: false newObjectSnapshot: false packagesToScan: com.xixicat.dao auditableAspectEnabled: true springDataAuditableRepositoryAspectEnabled: true
@JaversSpringDataAuditable public interface PersonRepository extends CrudRepository<Person, Integer> { }
@JaversAuditable public void save(Person person) { personRepository.save(person); }
@Test public void testChangeHistory(){ QueryBuilder jqlQuery = QueryBuilder.byInstanceId(2, Person.class); List<Change> changes = javers.findChanges(jqlQuery.build()); System.out.println(changes); changes.stream().forEach(e -> { System.out.println(e.toString()); }); String changeLog = javers.processChangeList(changes, new SimpleTextChangeLog()); System.out.println(changeLog); } @Test public void testSnapshotHistory(){ List<CdoSnapshot> snapshots = javers.findSnapshots(QueryBuilder.byInstanceId(1, Person.class).build()); System.out.println(snapshots); }
javersspring