Spring数据休息GET请求的一对一映射错误

时间:2018-02-22 18:32:07

标签: java spring jpa spring-boot spring-data-rest

我正在使用带有Spring Boot的Spring Data REST并且遇到一个特殊问题,当我向 Customer 发出GET请求时,我有一个关联的地址,我得到了在浏览器中出现以下错误:

  
    

出现意外错误(type = Internal Server Error,status = 500)。     org.springframework.http.converter.HttpMessageNotWritableException:无法写入JSON:找不到类[java.lang.Long]上的字段名[message];嵌套异常是com.fasterxml.jackson.databind.JsonMappingException:找不到类[java.lang.Long]上的字段名[message](通过引用链:....

  

我已经给出了下面代码的基本示例,并为了简洁起见删除了代码:

public class Customer {

    @OneToOne(mappedBy = "customer", cascade = CascadeType.ALL)
    private Address address;
    ....
}

public class Address {
    @Id
    @OneToOne(optional = false)
    @JoinColumn(name = "CUSTOMER_ID", unique = true, nullable = false)
    private Customer customer;
    ....
} 

但是,如果我的客户没有与之关联的地址,那么GET请求似乎没问题。

关于这个问题的任何想法?

1 个答案:

答案 0 :(得分:0)

代码中的属性是否像示例中一样注释? @Id应该用于原始类型或Wrapper-Type。

属性mappedBy应引用另一个类中的属性,例如id。在您的示例中,我看不到引用属性message

你试过吗

@OneToOne(mappedBy = "customer", cascade = CascadeType.ALL)

在您的客户类中?