有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何使用Spring数据Rest在POST调用中保存嵌入对象

我正在使用Spring1.3.3,无法对嵌入对象使用POST调用。使用POST调用时出现以下错误

请求

curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' -d '{
  "student": {
    "address": {
         .....
         "zipcode": http://localhost:8082/zipcode/1,

     }
  },
  "id": 1,
  "zipcode": http://localhost:8082/zipcode/1,
  "name": "John"
 }' 'http://localhost:8082/student'

响应错误:

{
  "cause": {
    "cause": null,
    "message": "Unrecognized token 'http': was expecting ('true', 'false' or 'null')\n at [Source: org.apache.catalina.connector.CoyoteInputStream@4a12dfc; line: 3, column: 22]"
  },
  "message": "Could not read document: Unrecognized token 'http': was expecting ('true', 'false' or 'null')\n at [Source: org.apache.catalina.connector.CoyoteInputStream@4a12dfc; line: 3, column: 22]; nested exception is com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'http': was expecting ('true', 'false' or 'null')\n at [Source: org.apache.catalina.connector.CoyoteInputStream@4a12dfc; line: 3, column: 22]"
}

地址。爪哇

@Embeddable
public class Address {
    private String street; 
    private String city; 
    private String state;
    // getters and setters

学生。爪哇

@Entity 
@Table(name="Student") 
@SecondaryTable(name="Student_ADDRESS",
                pkJoinColumns=@PrimaryKeyJoinColumn(name="Student_ID"))
public class Student {
    @Id private int id;
    private String name;

    @Embedded
    @AttributeOverrides({
        @AttributeOverride(name="street", column=@Column(table="Student_ADDRESS")),
        @AttributeOverride(name="city", column=@Column(name="CITY", table="Student_ADDRESS")),
        @AttributeOverride(name="state", column=@Column(name="STATE", table="Student_ADDRESS")),
    })
    private Address address;
    private Zipcode zipcode;
//getters and setters

Zipcode。爪哇

@Entity
public class Zipcode {
    @Id
    public int id;
    public String code;
}

如何保存嵌入对象?请提供您的意见


共 (1) 个答案

  1. # 1 楼答案

    它告诉您应该在URL周围放置“”

    curl -X POST  header 'Content-Type: application/json'  header 'Accept: application/json' -d '{
      "student": {
        "address": {
             .....
             "zipcode": "http://localhost:8082/zipcode/1",
    
         }
      },
      "id": 1,
      "zipcode": "http://localhost:8082/zipcode/1",
      "name": "John"
     }' 'http://localhost:8082/student'