【问题标题】:Jackson generate id for saved referencesJackson 为保存的引用生成 id
【发布时间】:2021-06-17 13:31:47
【问题描述】:

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

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

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

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

在构造函数中传递 id 时这样做可以正常工作,但我正在创建未知数量的 ReferencedClasses。

有没有办法让 Jackson 自动生成 id?

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

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

【问题讨论】:

    标签: java json serialization jackson


    【解决方案1】:

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

    @JsonProperty private long generatedId = 0;
    
    public long generateId() {
        return generatedId++;
    }
    

    【讨论】:

    • 在扩展应用程序时要小心,多个节点可能会导致您的 ID 冲突
    • @KhuynhThànhChiLuyến 感谢您的建议!我没有创建很多对象,如果我每毫秒创建一个对象,我不会在 100 年内用完 id :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-23
    • 1970-01-01
    • 2015-06-22
    • 1970-01-01
    • 2011-08-31
    • 2016-09-17
    • 1970-01-01
    相关资源
    最近更新 更多