【问题标题】:Jackson circular reference (2.0)杰克逊循环参考 (2.0)
【发布时间】:2014-01-11 04:18:11
【问题描述】:

我有一个用户 -> hasMany userPermission,当 Spring MVC 尝试输出 JSON 时,我得到一个循环引用。如果我将用户权限设置为空,它可以工作。如果我有一个 user->hasmany->userpermission (和权限 manyToOne 用户)我会得到一个堆栈溢出。

用户类有:

@OneToMany(mappedBy="user", cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    @JsonManagedReference("user-perm") private List<UserPermission> userPermissions;

UserPermissoin 具有: //与用户的双向多对一关联

@ManyToOne(cascade=CascadeType.ALL, fetch=FetchType.EAGER)
    @JoinColumn(name="user_id", nullable=false)
    @JsonBackReference("user-perm") private User user;

这里有什么想法吗?


* 更新 * Jackson 2.3.0 修复了它,Spring 与 1.9 的 2.3.0 一起工作,无需更改配置,只需更改 maven 依赖项。

【问题讨论】:

  • 你能用id代替对象吗?我的意思是在列表中。
  • 嗯,重点是从 RESTful 服务返回用户以显示权限详细信息。
  • 在这种情况下将它们转换为字符串
  • 那么,我应该为 JPA 和 Jackson 设置不同的字段吗?忽略注释似乎也不起作用。
  • 请输入您自己的答案,而不是在标题中宣称“已解决”。

标签: java json spring jackson circular-reference


【解决方案1】:

user1022260:Jackson 2.3.0 修复了它,Spring 与 1.9 中的 2.3.0 一起使用,无需更改配置,只需更改 maven 依赖项。

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 2012-05-13
    • 2015-05-24
    • 2012-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多