我有一个简单的测试设置来在 Spring Boot 应用程序中创建一个实体(javers 已知),通过提交进行一些更改,然后报告更改。
我希望这能奏效,但我总是没有得到任何改变。
我可以让快照正常工作,但不能在 3.0.0 上进行更改。
有人有类似的经历吗?
示例代码:
@Test
public void simpleTest() {
System.out.println(javers.getTypeMapping(Bookmark.class).prettyPrint());
Bookmark bookmark = new Bookmark();
bookmark.setName("new bookmark");
bookmark = bookmarkService.saveBookmark(bookmark);
javers.commit("creator", bookmark);
bookmark.setName("updated bookmark");
javers.commit("updater", bookmark);
QueryBuilder jqlQuery = QueryBuilder.byInstance(bookmark);
List<Change> changes = javers.findChanges(jqlQuery.build());
String changeLog = javers.processChangeList(changes, new SimpleTextChangeLog());
System.out.println(changeLog);
}
样本输出:
EntityType{
baseType: class model.Bookmark
typeName: model.Bookmark
managedProperties:
Field BigInteger id; //declared in Bookmark
Field String name; //declared in Bookmark
idProperty: id
}
main] o.javers.core.graph.ObjectGraphBuilder : live graph assembled, object nodes: 1, entities: 1, valueObjects: 0
main] org.javers.core.Javers : Commit(id:1.2, snapshots:1, author:creator, changes - ValueChange:2 NewObject:1), done in 5 millis (factory:3, persist:2)
main] o.javers.core.graph.ObjectGraphBuilder : live graph assembled, object nodes: 1, entities: 1, valueObjects: 0
main] o.j.c.j.t.commit.GlobalIdTypeAdapter : deserializing {"entity":"model.Bookmark","cdoId":10002}
main] org.javers.core.Javers : Commit(id:2.2, snapshots:1, author:updater, changes - ValueChange:2 ObjectRemoved:1 NewObject:1), done in 10 millis (factory:7, persist:3)
main] o.j.c.j.t.commit.GlobalIdTypeAdapter : deserializing {"entity":"model.Bookmark","cdoId":10002}
main] o.j.c.j.t.commit.GlobalIdTypeAdapter : deserializing {"entity":"model.Bookmark","cdoId":10002}
更改大小为 0,输出为空白。我尝试了一些变化,但似乎没有任何效果。我什至尝试从 SQLServer 切换到 H2,但得到了相同的结果。
只是想知道我是否误解了文档,或者它是否可能是在 Java 8 上运行的 3.0.0 中的错误。
谢谢!