【发布时间】: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