首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何解决JSONB序列化上的双向关系?

如何解决JSONB序列化上的双向关系?
EN

Stack Overflow用户
提问于 2020-05-20 14:19:54
回答 1查看 2.6K关注 0票数 6

我试图序列化一个具有双向关系的实体:

代码语言:javascript
复制
class TypeA {
  String name;
  TypeB typeB; 
}

class TypeB {
  String identifier;
  TypeA typeA;
}

对于Jackson,我用@JsonBackReference解决typeB属性,用@JsonManagedReference解决typeA属性,但是如何在JSONB (Eclipse实现)上解决这个问题?

代码语言:javascript
复制
Caused by: javax.json.bind.JsonbException: Recursive reference has been found in class class xxxxxx.model.Analysis.
        at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:76)
        at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:107)
        at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serializerCaptor(AbstractContainerSerializer.java:125)
        at org.eclipse.yasson.internal.serializer.ObjectSerializer.marshallProperty(ObjectSerializer.java:121)
        at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:69)
        ... 45 more

我用DTO解决了问题,但疑虑依然存在。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-30 00:49:21

为了解决循环结构,您应该使用@JsonbTransient。如文件所述

默认情况下,

  1. 忽略具有非公共访问的属性。所有公共属性--公共字段或带有公共getter的非公共字段--都被序列化为JSON文本。带有@JsonbTransient注释的
  2. 类属性被JSON绑定引擎.

忽略。

http://json-b.net/docs/user-guide.html#ignoring-properties

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61915478

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档