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

LEVENSHTEIN_DISTANCE doesn't ignore order by comparing of lists

P.P.S. Ok, I founded hier Javers Comparing Lists following comment There is no concept of move in JaVers list comparison algorithms. After a move there will be two changes reported: ValueAdded and ValueRemoved, just like you have mentioned. But how…
anli
  • 1
  • 2
0
votes
2 answers

Jackson does not convert nested Java 8 Optional from Javers Change object, what is special about it?

I am trying to send a list of Javers Changes as JSON via a REST api. While Jackson can handle Java 8 Optionals via loading the respective module it fails to serialize the Change object. When i create a class with Optionals myself the serialization…
dhfsk
  • 281
  • 1
  • 8
0
votes
0 answers

Recursive compare - Hibernate Audit object + Javers

I have following simple data model: TestUser: @Entity @Table(name = "TEST_USER") @Audited public class TestUser implements Serializable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "ID") private Long…
bontade
  • 3,194
  • 6
  • 48
  • 75
0
votes
1 answer

Javers - Disable sql schema

In Javers and Spring, is can disable the automatic creation sql schema? So I can create the schema with Liquibase for use multi-tenancy
Thiago
  • 13
  • 5
0
votes
1 answer

Potential scalability issue with Javers keeping data in a single table?

We were looking into different alternatives for storing object changes and found JaVers which seem to be tool built exactly for this purpose. We have built a prototype (using MySQL for change repo) which has worked out well and delivered what has…
mindas
  • 26,463
  • 15
  • 97
  • 154
0
votes
1 answer

How to retrieve deleted record?

I wonder how to retrieve deleted record that audited with Javers, as I know how to retrieve version changelog but when the record deleted from database table, there is no ID to retrieve audit record.
Adam Yong
  • 59
  • 1
  • 5
0
votes
1 answer

Javers audit a custom delete

What way Javers audit a custom 'delete'? Using spring-boot integration, for example: @Transactional @Modifying @Query(" delete from ExecutePayment exeP " + " where exeP.customer = :customer " + " and exeP.status =…
Thiago
  • 13
  • 5
0
votes
2 answers

Get Image from Urls with AsyncTask

I am sure this is not a new question. Unfortunately, after fighting for this activity over 20 hours, I'm still cannot find out the solution. Could you please give me a helping hand. I will be very appreciate. Hey is my question. I would like to show…
Chow Day
  • 23
  • 2
0
votes
1 answer

Is there a way to commit unchanged object?

We have the need to commit an Entity in Javers, even if this entity didn't change. Our goal is to make Javers work as Git, which enables you to commit a file even if it has not been modified... Thanks
0
votes
2 answers

HowTo map Javers snapshot to entity via JPA annotations/converter

Given code: public enum ApplicationStatus { CREATED, VERIFIED, APPROVED, REJECTED, DELETED, PUBLISHED; } @lombok.Data // adds constructors, getters, setters, equals & hashcode @Table("Application") public class Application implements…
termil0r
  • 131
  • 2
  • 14
0
votes
1 answer

Javers with multiple EntityManagerFactory

We are just getting started with JaVers in a Spring Boot application. This application as two EntityManagerFactory beans: @Primary @Bean(name = "entityManagerFactory") LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource…
DEvers
  • 1
0
votes
1 answer

Use javers query without entity classes in another project

i got two projects. In the first one are entities, which changes i save with javes. then i got a second project, where i want to test if the first project saves the changes correctly. but the second one has no dependency to the entities of the first…
user3036353
  • 51
  • 1
  • 6
0
votes
0 answers

JaVers missing table

In the documentation http://javers.org/documentation/repository-configuration/#connection-provider it is listed that there should be 4 tables which are jv_cdo_class, jv_global_id, jv_commit, jv_snapshot. For some reason I don't have the jv_cdo_class…
patri
  • 59
  • 9
0
votes
2 answers

Configure JaVers to create tables in a particular schema

When using JaVers, JaVers is creating its 4 tables in the public schema in Postgres (http://javers.org/documentation/repository-configuration/#connection-provider). I would like to configure it to save these tables in a new schema, example,…
patri
  • 59
  • 9
0
votes
3 answers

JaVers exception when @Id is on Getter instead of on property

I have an Entity which for a number of reasons (Why should anybody put annotations on the getters or setters when using JPA to map the classes?) we are annotating the getter method instead of the field: protected Long…
patri
  • 59
  • 9