我正试图为现有的遗留系统实现一个简单的差异系统。我正在计算使用Javers的多个潜在对象状态之间的差异,并将它们保存在序列化版本中。我不想在我的对象上进行更改,只是跟踪我的差异。是否有可能对Javers Diff进行反序列化?
是否有任何方法可以重新创建Diff对象,给定先前序列化的Diff?
这里是我的使用情况:
我有一个基础机构,我做不想改变。系统接收同一实体的新版本,我想知道它们与我的基本实体有何不同。我发现使用Javers Diff的区别并且可以显示它们,显然通过序列化diff来坚持它们,但不能通过序列化diff从数据库恢复它们。
我想实现这一目标的一种方法是保持整个更改的替代实体,然后在运行时计算Diff,但似乎没有必要持久整个新实体,只有少数字段具有改变。由于唯一的密钥,坚持我的实体的替代版本也会混淆我现有的系统。
你好@Solvemon,谢谢分享你的成功。请问,你是如何获得'JsonConverter'的实例的?我试图从'JsonConverterBuilder'中检索一个,但是它在运行时失败:'无法为类org.javers.core.diff.Change调用无参数构造函数。对于这种类型的Gson注册一个InstanceCreator可能会解决这个问题。'# –
** FIXED ** - OK,对于每个人来说,都会和我做同样的事情(即调用'new JsonConverterBuilder()。build()')。不要这样做。 :)只需调用'JAVERS.getJsonConverter()'。这样的持久性将为你工作。 –