为了账号安全,请及时绑定邮箱和手机立即绑定

使用 eclipselink 的 JPA Stackoverflow 异常

使用 eclipselink 的 JPA Stackoverflow 异常

拉丁的传说 2022-07-20 16:16:41
当我试图从我的应用程序中获取一个项目或项目列表时,我得到了一个java.lang.StackOverflowError例外。我将 JPA 与 eclipselink 一起使用。我得到以下堆栈跟踪:java.lang.StackOverflowErrorjava.lang.StackOverflowError    at java.util.concurrent.ConcurrentHashMap$BaseIterator.<init>(ConcurrentHashMap.java:3391)    at java.util.concurrent.ConcurrentHashMap$ValueIterator.<init>(ConcurrentHashMap.java:3430)    at java.util.concurrent.ConcurrentHashMap$ValuesView.iterator(ConcurrentHashMap.java:4683)    at org.eclipse.yasson.internal.ComponentMatcher.searchComponentBinding(ComponentMatcher.java:187)    at org.eclipse.yasson.internal.ComponentMatcher.getSerializerBinding(ComponentMatcher.java:143)    at org.eclipse.yasson.internal.serializer.SerializerBuilder.build(SerializerBuilder.java:73)    at org.eclipse.yasson.internal.serializer.ObjectSerializer.marshallProperty(ObjectSerializer.java:102)    at org.eclipse.yasson.internal.serializer.ObjectSerializer.serializeInternal(ObjectSerializer.java:61)    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serialize(AbstractContainerSerializer.java:63)    at org.eclipse.yasson.internal.serializer.AbstractContainerSerializer.serializerCaptor(AbstractContainerSerializer.java:95)我尝试了在多个网站上找到的多种解决方案:json忽略Jsonmanagedreference & JsonbckreferenceJsonIgnorePropertiesJsonIdentityInfo实体图即使上面列出的所有内容都应该工作,但它们似乎都没有工作。到目前为止,我发现的唯一“解决方案”是删除吸气剂,但这消除了建立双向关系的目的,因为您无法访问它们。有谁知道我做错了什么,或者有人有其他可行的解决方案吗?
查看完整描述

1 回答

?
largeQ

TA贡献2039条经验 获得超7个赞

搜索了一段时间后,我发现我必须使用 ObjectMapper 来触发 Json 注释。

适用于@JsonIgnore@JsonBackReference@JsonManagedReference@JsonIgnoreProperties@JsonIdentityInfo

在我的控制器中更改以下行:

return Response.status(Response.Status.OK).entity( roleService.all()).build();

至:

return Response.status(Response.Status.OK).entity(new ObjectMapper().writeValueAsString(roleService.all())).build();


查看完整回答
反对 回复 2022-07-20
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信