0
我的要求是,为了应用程序审计目的,我想比较两个BO对象,并返回一个obj diff作为Json字符串将详细信息存储到审计表中。要比较对象,我选择了Javers。在我的情况我已经实施了休眠拦截器将监视BO actions.That部分工作fine.But时尝试比较BO与Javers对象扔我一个错误称为如何比较使用Javers的休眠BO对象
ENTITY_INSTANCE_WITH_NULL_ID: Found Entity instance 'com.myproject.runtime.bo.Result_$$_jvstc5f_5' with null idProperty 'resultid'
这里是我的样品休眠结果类
class Result {
@id //javax.persistence.Id
resultid;
name;
etc ...
}
的OBJ比较代码段
public static <B> String compareObjDiff(final B oldBo, final B newBo) {
Javers javers = JaversBuilder.javers().build();
Diff diff = javers.compare(oldBo, newBo);
return javers.getJsonConverter().toJson(diff);
}
请让我知道如何比较使用javers.also的hibernate BO对象是否可以忽略@id
属性?
注意:Bo对象在运行时可以包含null
值。