如何使用Javers比较hibernate BO对象

时间:2016-09-28 07:38:55

标签: java javers

我的要求是,对于应用程序审计目的,我想比较两个BO对象并返回一个obj diff作为Json字符串,以将详细信息存储到审计表中。要比较我选择Javers的对象。在我的情况下,我已经实现了一个监视BO动作的hibernate拦截器。这部分工作正常。但是当试图用Javers比较BO对象时抛出一个名为

的错误
ENTITY_INSTANCE_WITH_NULL_ID: Found Entity instance 'com.myproject.runtime.bo.Result_$$_jvstc5f_5' with null idProperty 'resultid'

这是我的示例hibernate Result类

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比较hibernate BO对象。还是可以忽略@id属性吗?

注意:Bo对象在运行时可以包含null个值。

1 个答案:

答案 0 :(得分:2)

我不确定什么是Hibernate BO对象。 如果你的意思是域对象(实体被Hibernate持久化) - 答案就是这个问题Javers ENTITY_INSTANCE_WITH_NULL_ID when using 2 databases