กำลังอัปเดตคีย์ต่างประเทศใน Spring jpa hateoas

ฉันใช้รหัสเดียวกันกับที่อธิบายไว้ในคำถามอื่นของฉัน: การเข้าถึงข้อมูล jpa พร้อมการเริ่มต้นที่เหลือ + เอนทิตีไบค์ที่มีคีย์ต่างประเทศในเอนทิตีบุคคล

ปัญหาคือฉันไม่สามารถอัปเดตค่า person_id ในเอนทิตี bike ได้ ฉันลองใช้คำสั่งนี้:

curl -i -X PUT -H "Content-Type:application/json" -d "{ \"name\" : \"Frodos Bike name is changed\", \"person\" : \"http://localhost:8080/people/2\" }" http://localhost:8080/bikes/1

แต่มันไม่ทำงาน ค่าชื่อเปลี่ยนแปลง แต่ person_id ยังคงเหมือนเดิม

โปรดทราบว่าฉันมีบุคคลที่มี ID = 2 และสามารถเข้าถึงได้ที่ url: http://localhost:8080/people/2

วิธีที่ถูกต้องในการอัปเดตฟิลด์นี้คืออะไร?


person Kenan    schedule 28.03.2017    source แหล่งที่มา


คำตอบ (1)


PUT จะทำงานร่วมกับ curl -i -X PUT -H "Content-Type:application/json" -d '{"_links": {"person": {"href" : "/people/2"}}} http://localhost:8080/bikes/1/person

หรือด้วย PATCH กับ curl -i -X PATCH -H "Content-Type:application/json" -d "{ \"name\" : \"Frodos Bike name is changed\", \"person\" : \"/people/2\" }" http://localhost:8080/bikes/1

person KLHauser    schedule 29.03.2017