当前位置: 首页 > 知识库问答 >
问题:

如何使用Javers比较hibernate BO对象

姚海
2023-03-14

我的要求是,为了应用程序审计的目的,我希望比较两个BO对象,并返回一个obj diff作为Json字符串将详细信息存储到审计表中。在我的例子中,我实现了一个hibernate拦截器,它将监视BO操作。这部分工作得很好。但是当试图将BO对象与Javers进行比较时,会出现一个名为

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

下面是我的示例hibernate结果类

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);
    }

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

共有1个答案

仲柏
2023-03-14

我不确定什么是Hibernate BO对象。如果您指的是域对象(由Hibernate持久化的实体)--答案在这个问题中,当使用2个数据库时,Javers ENTITY_INSTANCE_WITH_NULL_ID

 类似资料:
  • 我想检测到鲍勃在以下情况下将城市从伦敦改为巴黎:

  • 嗨,我是贾维斯的新手。 我有一个实体,我正在为它实现一个自定义比较器,以便使用Javers进行比较。 我的实体:- 包装com.devyansh.entity; 进口java.util.清单; 导入组织。贾维斯。果心元模型。注释。实体 下面我注册了新的比较器:- 我的比较器实现:- 问题领域:- 每当我尝试使用以下行进行比较时:- Diff Diff=标枪。比较(new Ent(“aaa”,new

  • 问题内容: 最近在一次求职面试中,有人问我以下问题(对于Java): 鉴于: 的返回值是多少 我回答它会返回false,因为它们是两个不同的对象,并且==是内存地址比较而不是值比较,并且需要使用.equals()比较String对象。但是我被告知,尽管.equals(0方法论是正确的,但是该语句仍然返回true。我想知道是否有人可以向我解释为什么它是正确的,但是为什么我们还在学校里教我们使用equ

  • 我有一个关于列表比较器的问题。我有一个带有表格的网页应用程序。我可以在这个表格中编辑数据,也可以删除行。当我编辑数据时,标准比较器工作正常,但当我删除行时,我有问题。这个问题很常见(我想),当我删除一行时,javers比较旧列表和现在的列表时,看起来是这样的:旧列表有两个对象,现在列表有一个对象(我删除了第一个),现在javers不知道哪个对象被删除了,他比较旧列表中的第一个对象和新列表中的第二个

  • 本文向大家介绍js对象如何深比较?相关面试题,主要包含被问及js对象如何深比较?时的应答技巧和注意事项,需要的朋友参考一下 之前其实没听说过,但是刚刚搜索到了 我还是不复制粘贴了 原文地址

  • 我有两个列表,数据相同,但顺序不同。 结果: