You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
JaVers offers a database-agnostic approach to data auditing
41
41
based on the [`JaversRepository`]({{ site.github_core_main_url }}org/javers/repository/api/JaversRepository.java) abstraction.
42
42
43
-
***JSON-Based Snapshots:** Unlike table-oriented tools (like Envers), JaVers uses an **object-oriented approach**, storing snapshots as JSON documents in a unified structure.
44
-
***Decoupled Persistence:** Because it relies on JSON serialization, audit data is decoupled from live data [7]. This allows you to store audit logs in a different database than the application data if desired (e.g., application in SQL, JaVers in MongoDB).
45
43
***Supported Databases:** JaVers supports MongoDB and the following SQL databases: Oracle, PostgreSQL, Microsoft SQL Server, MySQL/MariaDB, and H2.
44
+
***JSON-Based Snapshots:** Unlike table-oriented tools (like Envers), JaVers uses an **object-oriented approach** and stores object Snapshots as JSON documents in a unified structure.
45
+
***Decoupled Persistence:** Because it relies on JSON serialization, audit data is decoupled from live data [7]. This allows you to store audit logs in a different database than the application data if desired (e.g., application in SQL, JaVers in MongoDB).
46
+
***Custom JSON serialization:** JaVers has a well-designed and customizable JSON serialization and deserialization module, based on
47
+
[`GSON`](https://code.google.com/p/google-gson/) and Java reflection, see [custom JSON serialization](/documentation/repository-configuration#custom-json-serialization).
46
48
47
49
See [Repository Configuration](/documentation/repository-configuration) documentation.
48
50
49
51
If you are using another database, for example Cassandra, you are encouraged to implement
50
52
the `JaversRepository` interface and contribute it to Javers project.
***Domain Model Mapping:** JaVers identifies objects based on Domain-Driven Design (DDD) principles, distinguishing between **Entities** (with unique IDs) and **Value Objects** (identified by their path from a parent entity).
55
57
***Flexible Mapping Configuration**: JaVers provides multiple ways to configure how domain objects are audited (mapped to Snapshots) and compared. You can use annotations, fluent API configuration, or default conventions to fine-tune auditing behavior without modifying your persistence model.
@@ -59,7 +61,8 @@ the `JaversRepository` interface and contribute it to Javers project.
59
61
60
62
See [Domain Configuration](/documentation/domain-configuration) documentation.
61
63
62
-
### JaVers Query Language (JQL)
64
+
<h3id="jql">JaVers Query Language (JQL)</h3>
65
+
63
66
With JaVers, you can easily browse the change history
64
67
of your domain objects, seeing when a change occurred,
65
68
who made it, and the values before and after.
@@ -72,7 +75,8 @@ who made it, and the values before and after.
72
75
73
76
See the [JaVers Query Language](/documentation/jql-examples) documentation.
74
77
75
-
### Excellent Spring and Spring Boot Integration**
78
+
<h3id="spring-integration">Excellent Spring and Spring Boot Integration</h3>
79
+
76
80
***Spring Boot Starters**: JaVers offers Spring Boot starters for SQL and MongoDB with sensible default configurations. These starters let you integrate JaVers into your Spring Data applications with minimal manual setup.
77
81
***Auto-Audit Aspects**: For Spring Data repositories, you can enable full data auditing with a single annotation: `@JaversSpringDataAuditable`. JaVers will then automatically track changes to objects whenever they are created, updated, or deleted. For non–Spring Data repositories, you can use the method-level `@JaversAuditable` annotation to capture changes automatically.
78
82
***Transaction Management**: It integrates with Spring's transaction management, ensuring that audit logs are committed or rolled back alongside application data.
@@ -113,12 +117,6 @@ and [Spring Boot Integration](/documentation/spring-boot-integration) documentat
113
117
114
118
* Take a look at [repository examples](/documentation/repository-examples).
0 commit comments