Spring boot Spring boot JPA错误:无法处理托管/返回引用';defaultReference';:从类型中找不到反向引用属性

Spring boot Spring boot JPA错误:无法处理托管/返回引用';defaultReference';:从类型中找不到反向引用属性,spring-boot,jpa,jackson,spring-data-jpa,spring-rest,Spring Boot,Jpa,Jackson,Spring Data Jpa,Spring Rest,我有以下3个域模型对象,其中appuser的排名和培训状态如下。Get调用在返回JSON对象时工作正常,但在JPA GETT错误中添加模型对象时工作正常 Cannot handle managed/back reference 'defaultReference': no back reference property found from type [simple type, class com.springboot.model.Rank ` 但这给使用JPA持久化对象带来了错误 .Mapp

我有以下3个域模型对象,其中appuser的排名和培训状态如下。Get调用在返回JSON对象时工作正常,但在JPA GETT错误中添加模型对象时工作正常

Cannot handle managed/back reference 'defaultReference': no back reference property found from type [simple type, class com.springboot.model.Rank
`

但这给使用JPA持久化对象带来了错误

.MappingJackson2HttpMessageConverter : Failed to evaluate Jackson deserialization for type [simple type, class com.springboot.model.AppUser]

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot handle managed/back reference 'defaultReference': no back reference property found from type [simple type, class com.springboot.model.Rank]
    at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.DeserializationContext.reportBadDefinition(DeserializationContext.java:1451) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase._resolveManagedReferenceProperty(BeanDeserializerBase.java:766) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.resolve(BeanDeserializerBase.java:474) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:293) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.deser.DeserializerCache.hasValueDeserializerFor(DeserializerCache.java:191) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.DeserializationContext.hasValueDeserializerFor(DeserializationContext.java:422) ~[jackson-databind-2.9.3.jar:2.9.3]
    at com.fasterxml.jackson.databind.ObjectMapper.canDeserialize(ObjectMapper.java:2863) ~[jackson-databind-2.9.3.jar:2.9.3]

通过从父类AppUser中删除注释@JsonManagedReference,我解决了这个问题。在子类中保留@JsonBackReference并添加 所有3个类的JsonIdentityInfo注释之后,我的rest getUser和create user操作运行良好,并返回这两个操作的有效JSON

{
    "age": 24,
    "name": "Amit",
    "salary": 15000,
    "rank": {
        "rank": "Clark"
    },
    "trainingstatus": {
        "trainingStatus": "Completed"
    }
}
 @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")

通过从父类AppUser中删除注释@JsonManagedReference,我解决了这个问题。在子类中保留@JsonBackReference并添加 所有3个类的JsonIdentityInfo注释之后,我的rest getUser和create user操作运行良好,并返回这两个操作的有效JSON

{
    "age": 24,
    "name": "Amit",
    "salary": 15000,
    "rank": {
        "rank": "Clark"
    },
    "trainingstatus": {
        "trainingStatus": "Completed"
    }
}
 @JsonIdentityInfo(generator=ObjectIdGenerators.PropertyGenerator.class, property="id")

你能提供你的模型结构吗?嗨@Novy,你能现在检查一下吗?这会有很大帮助吗?我已经在Github中添加了我的测试项目:你能提供你的模型结构吗?嗨@Novy,你能现在检查一下吗?这会有很大帮助吗?我已经在Github中添加了我的测试项目: