반응형

진행 중인 프로젝트에서 Model객체 안에 값들을 비교하여 다른 값을 보여줘야 하는 상황이 나와서 검색 중에 Javers라는 패키지를 사용하여 쉽게 적용을 하여 포스팅을 해보려고 해요

javers.org/

 

JaVers — Object auditing and diff framework for Java

With JaVers you can forget about troublesome data versioning. Let the changes in your data be managed by JaVers.

javers.org

여기를 들어가서 찾았어요.

mvnrepository.com/artifact/org.javers/javers-core

 

Maven Repository: org.javers » javers-core

JaVers - object auditing and diff framework for Java VersionRepositoryUsagesDate5.14.x5.14.0Central4Nov, 20205.13.x5.13.2Central4Oct, 20205.13.1Central3Oct, 20205.13.0Central3Oct, 20205.12.x5.12.0Central3Sep, 20205.11.x5.11.2Central3Aug, 20205.11.1Central3

mvnrepository.com

maven을 통해서 jar를 받을 수가 있어요.

 

Javers javers = JaversBuilder.javers().build();

Diff diff = javers.compare(Model1, Model2);
System.out.println(diff);
HashMap<String, Object> reqFundMapperHistMap = objectMapper.readValue(javers.getJsonConverter().toJson(reqFundHisttDiff), HashMap.class);

위 diff를 찍어보면

- 'areaCode' value changed from '' to '222'
- 'corporateName' value changed from '20201123113139' to '20201123111107'
- 'farmingWorkPeriodYy' value changed from '9' to '11'
- 'frmerSn' value changed from '' to '111'
- 'histId' value changed from '1015' to '1014'
- 'juminNo' value changed from '' to '31312312312'
- 'lagHistId' value changed from '1014' to ''
- 'modDtm' value changed from '' to '12312312313'
- 'modReason' value changed from '128' to ''
- 'regDtm' value changed from '20201123113139' to '20201123111107'
- 'status' value changed from '' to '149'
- 'userName' value changed from 'admin' to ''

변경된 값만 나오고 있어요 변수명 - value1 to value2 이런 식으로 요 이걸 다시 java에서 바로 사용을 하려고 JSON으로 변환하여 MAP으로 담았어요. List를 넘겨서 비교를 해봤는데 List는 안되는 거 같네요. 가끔 프로젝트하면서 비교할 일이 생기는데 그때 편하게 사용할 수 있는 패키지인 거 같아요.

반응형

+ Recent posts