Questions tagged [javers]

JaVers is a lightweight java library for auditing changes in your data.

What is JaVers

JaVers is a lightweight java library for auditing changes in your data.

We all use Version Control Systems for source code, so why not use a specialized framework to provide an audit trail of your Java objects (entities, POJO, data objects)?

Story of JaVers

When developing an application, we usually concentrate on the current state of the domain objects. So we simply instantiate them, apply some changes and eventually, delete them, not paying much attention to their previous states.

The challenge arises when a new requirement is discovered.

As a User, I want to know who changed this status, when the change was performed and what the previous status was. The problem is that both version and change notions are not easily expressible either in Java language or in the mainstream databases (although NoSQL document databases have an advantage here over relational databases).

This is the niche that JaVers fills. In JaVers, version and change are first class citizens.

Basic facts about JaVers

  • It’s lightweight and versatile. We don’t make any assumptions about your data model, bean container or underlying data storage.
  • Configuration is easy. Since we use JSON for object serialization, we don’t want you to provide detailed ORM-like mapping. JaVers only needs to know some high-level facts about your data model.
  • JaVers is meant to keep its data versioning records (snapshots) in the - application’s primary database, along with main data. We use some basic notions following Eric Evans DDD terminology like Entity or Value Objects, pretty much how JPA does. We believe that this is the right way to describe data.
  • JaVers is written in Java7 and can be run on JDK 7 or higher.

Licence

JaVers is released under Apache License Version 2.0.

Homepage

http://javers.org/

388 questions
0
votes
1 answer

Javers Comparing Lists

I'm attempting to convert a diff on two lists of Entities into a more human readable format by interpreting container changes (v1.6.0). If I have a List of Entities (listBefore): entity1 entity2 entity3 entity4 and I reorder the list…
stacktrace
  • 547
  • 1
  • 6
  • 19
0
votes
2 answers

Spring AOP, @JaversAuditable still trying to commit a change when exception has been thrown

This is with Spring 4.1.9.RELEASE, Spring-Data 1.11.4.RELEASE, Javers 1.6.0 with spring integration So using Spring with @JaversAuditable, I'm finding that if an exception handles when I try and insert (such as duplicate key exception),…
Drizzt321
  • 993
  • 13
  • 27
0
votes
1 answer

Can JaVers be integrated with Hibernate?

I've seen you can use JaVers to serialize changes to a database, but I can't find a good example about Spring or Hibernate integration. I would also know if I can change the generated table names and columns. Thank!
Monkiki
  • 109
  • 2
  • 10
0
votes
1 answer

Javers and MyBatis integration help needed

I'm having issues trying to get MyBatis and Javers (with Spring) integrated and working. I've followed instructions at http://javers.org/documentation/spring-integration/ and gotten the Aspect setup, and annotated my entity class and registered it…
Drizzt321
  • 993
  • 13
  • 27
0
votes
1 answer

How to query for Author

Using javers 1.4.10 and we try to display all objects which were changed by a certain user. Is there any way to get the changes for a specific author? QueryBuilder & JqlQuery obviously do not offer an API to build a query tnx & regards
0
votes
2 answers

Javers SQL connections in use forever

I have a problem with database connections not being 'released' by javers. We are using Hibernate 5.0.6, Hikari as our connection pool and the MSSQL Server as our database. Javers is configured as follows (snippet): JaversBuilder.javers(). …
0
votes
1 answer

Save Differences with Entity ID

i want to save the difference of two entities. the old entity has a id witch is not null. the new one has an id with a null value so i compare them as valueObject. The problem is that ValueChange does save the differences but not the id of the old…
user3036353
  • 51
  • 1
  • 6
0
votes
1 answer

Access to ReferenceChange Object References

I am logging changes made in an object graph and am receiving a ReferenceChange (which is correct): ReferenceChange{globalId:'JaversTest2$BeanWithField/1', property:'integerHolder', oldRef:'JaversTest2$IntegerHolder/4',…
stacktrace
  • 547
  • 1
  • 6
  • 19
0
votes
1 answer

How to access Property?

From 1.4.0 release, "PropertyChange is now decoupled from Property, reference from propertyChange to concrete property is replaced with propertyName String field." What's the alternative way to access Property after 1.4.0 changes ? As I would like…
Adam Yong
  • 59
  • 1
  • 5
0
votes
1 answer

InstanceID.value() includes typename twice. Is it correct?

Is it correct, that InstanceId.value() includes the typename twice? // gives "typename/...,typename' public String value(){ return this.getTypeName() + "/" + this.getCdoIdAsString(); } // gives comma-separated persistent values including…
0
votes
1 answer

versions in Javers query language

I have a question regarding using JQL from javers If I have three model x,y and z with relationship : model x: @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "x_ID") private Long xId; @Column(name = "A") private…
yehia
  • 17
  • 5
0
votes
2 answers

Why is javers throwing "argument should not be null" when the compared objects are NOT null, in a mockito test?

I've used javers in a different part of our app. Now I'm adding it to another, and am getting an IllegalArgumentException: argument should not be null. But I have verified (by serializing the objects and logging them) that the 2 objects are NOT null…
user26270
  • 6,904
  • 13
  • 62
  • 94
-1
votes
0 answers

java.lang.ClassCastException: com.google.gson.JsonNull cannot be cast to com.google.gson.JsonObject

I am trying to add the list of customers in JSONObject as given below: for (int j = 0; j < list.size(); j++) { if (list.size() > 0) { JSONObject customerList = new JSONObject(); list.get(j).getId(); customerList.put("id",…
Rahulv
  • 1
  • 2
-1
votes
1 answer

How to implement different algorithm for List in javers?

Suppose this is my entity class. class Person{ List assetList; } Scenario 1: List | List Asset1 | Asset1 Asset2 | Asset3 Asset3 | Scenario 2: List | List Asset1 | Asset2 Asset2 |…
John D
  • 1
  • 1
-1
votes
1 answer

Filter data before onSaveAll execution

I have a spring-mongo application with javers integrated which provides @JaversSpringDataAuditable annotation. Now the problem is for some of my repositories i do not want to save all data for audit which means i want to filter the data before…
1 2 3
25
26