如何解决Spring Boot:当实体具有双向引用ManyToMany,FetchType.LAZY时,请求答案中为“循环”
美好的一天,
我正在研究Spring Boot。这是我的作品-https://github.com/Alex1182-St/java-spring-jpa-postgresql.git
我有2个实体:
实体具有双向引用(ManyToMany,FetchType.LAZY)。
我的问题是,当我的方法(AppUserController中的方法appUserById2WithPost)返回一个实体而不是DTO时,答案中会出现“循环”。 这是这种叫的样子-
{{1}}
在Idea的控制台中,我遇到这样的错误-尝试解决异常[org.springframework.http.converter.HttpMessageNotWritableException]失败
具有方法-https://github.com/Alex1182-St/java-spring-jpa-postgresql/blob/master/src/main/java/com/java/javaspringjpapostgresql/controllers/AppUserController.java
的控制器当然,我可以通过返回DTO(例如在appUserByIdWithPost方法中)或在实体中使用注释@JsonIdentityInfo来解决它。
但我担心该项目会引发错误。我想解决。但是我找不到原因。有人能帮我吗? 还是这种行为很正常?
先谢谢您
解决方法
我会说这种行为对于双向关系是正常的,并且可以使用JSON注释进行处理(尽管@JsonIdentityInfo不需要这样做:您可以考虑使用JsonIgnore或JsonValue)。
另一个问题是,您是否需要双向关系(在RoleEntity上确实需要多对多吗?),或者即使RoleEntity应该是一个实体。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。