【问题标题】:How to compare hibernate BO objects using Javers如何使用 Javers 比较休眠 BO 对象
【发布时间】:2017-02-06 01:11:17
【问题描述】:

我的要求是,出于应用程序审计的目的,我想比较两个 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 ...
    }

Obj对比码sn-p

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 值。

【问题讨论】:

    标签: java javers


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-18
      • 2012-09-23
      • 2011-09-10
      • 2019-11-14
      相关资源
      最近更新 更多