0

我的要求是,出于应用程序审计目的,我想比较两个 BO 对象并将 obj diff 作为 Json 字符串返回,以将详细信息存储到审计表中。为了比较对象,我选择了 Javers。就我而言,我已经实现了一个休眠拦截器,它将监视 BO 操作。这部分工作正常。但是当尝试将 BO 对象与 Javers 进行比较时,我会抛出一个名为

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 ...
    }

对象比较代码片段

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

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

4

1 回答 1

2

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

于 2016-09-29T17:24:52.970 回答