2016-09-28 50 views
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值。

回答