再会,
我正在研究 Spring Boot。这是我的项目 - https://github.com/Alex1182-St/java-spring-jpa-postgresql.git
我有 2 个实体:
AppUserEntity - https://github.com/Alex1182-St/java-spring-jpa-postgresql/blob/master/src/main/java/com/java/javaspringjpapostgresql/entities/AppUserEntity.java
实体具有双向引用(ManyToMany、FetchType.LAZY)。
我的问题是,当我的方法(AppUserController 中的方法 appUserById2WithPost)返回实体而不是 DTO 时,我会在答案中收到“循环”。 这是这个循环的样子 -
"id": "e68e915f-e684-4b95-820a-a670a7bea677",
"appUserLogin": "Login9",
"appUserPassword": "$2a$10$ENyk.YDPLn4zsq1JL6Nol.97kwIlZVAK7pCei8I9i6LhzMj52UAN.",
"roles": [
{
"id": "7a8abe8d-ab02-4e00-a463-a7d23df05778",
"name": "USER",
"appUsers": [
{
"id": "e68e915f-e684-4b95-820a-a670a7bea677",
"appUserLogin": "Login9",
"appUserPassword": "$2a$10$ENyk.YDPLn4zsq1JL6Nol.97kwIlZVAK7pCei8I9i6LhzMj52UAN.",
"roles": [
{
"id": "7a8abe8d-ab02-4e00-a463-a7d23df05778",
"name": "USER",
"appUsers": [
{
"id": "e68e915f-e684-4b95-820a-a670a7bea677",
"appUserLogin": "Login9",
"appUserPassword": "$2a$10$ENyk.YDPLn4zsq1JL6Nol.97kwIlZVAK7pCei8I9i6LhzMj52UAN.",
"roles": [
{
"id": "7a8abe8d-ab02-4e00-a463-a7d23df05778",
"name": "USER",
"appUsers": [
{
"id": "e68e915f-e684-4b95-820a-a670a7bea677",
"appUserLogin": "Login9",
"appUserPassword": "$2a$10$ENyk.YDPLn4zsq1JL6Nol.97kwIlZVAK7pCei8I9i6LhzMj52UAN.",
"roles": [
{ AND SO ON...
在 Idea 的控制台中,我有这样的错误 -尝试解决异常时失败 [org.springframework.http.converter.HttpMessageNotWritableException]
当然,我可以通过返回 DTO(如在方法 appUserByIdWithPost 中)或在实体中使用注释 @JsonIdentityInfo 来解决它。
但我担心项目中仍然会出现错误。我想解决它。但我找不到它的原因。有人能帮我吗?或者这种行为是否正常?
先感谢您。