首页 > 解决方案 > Jackson 为保存的引用生成 id

问题描述

在我的项目中,一个类引用了另一个类。

当使用杰克逊保存这个类时,我想保留对另一个类的引用,它也被保存了。

为此,我在引用的类中有一个名为“id”的字段并使用此注释:

@JsonIdentityInfo(scope = ReferencedClass.class, generator = ObjectIdGenerators.PropertyGenerator.class, property="id")

在构造函数中传递 id 时这样做很好,但我正在创建未知数量的ReferencedClasses。

有没有办法让杰克逊自动生成 id?

我想知道这个参数是什么generator = ObjectIdGenerators.PropertyGenerator.class意思。

我无法在任何地方找到解决此问题的方法。

标签: javajsonserializationjackson

解决方案


我没有找到适合这种情况的解决方案,所以在我的主要保存对象中,我最终使用了以下代码:

@JsonProperty private long generatedId = 0;

public long generateId() {
    return generatedId++;
}

推荐阅读