2017-06-15 95 views
0

在Spring Roo 2.0中,使用JSON更新對象會創建一個新對象。在Spring Roo 2.0中,使用JSON更新對象會創建一個新對象

當我嘗試使用JSON更新對象而不是更新原始對象時,我在數據庫中得到一個新對象。難道我做錯了什麼?

進行更改之前的票證。設備參考字段爲空,所以我想改變它。

{ 
    "id": 26, 
    "version": 0, 
    "ticketNumber": "Ticket 1", 
    "ticketName": "T1 name", 
    "location": "somewhere", 
    "description": "desc", 
    "customerName": null, 
    "projectNumber": "Project 1", 
    "opportunity": null, 
    "marketSegment": null, 
    "createdBy": "me", 
    "plannedCreateDate": 1496556000000, 
    "createDate": 1496556000000, 
    "ticketStatus": "SUBMITTED", 
    "ticketObjective": null, 
    "equipment": null, 
    "ticketResult": null, 
    "ticketConclusion": null, 
    "pivotuser": null 
} 

更改的對象,我使用: 方法= PUT,URL =」 http://localhost:8000/json/tickets/26」 頭:內容類型=應用程序/ JSON,接受=應用程序/ JSON 身體:

{ 
    "ticketNumber": "Ticket 1", 
    "ticketName": "T1 name", 
    "location": "somewhere", 
    "description": "desc" 
    "customerName": null, 
    "projectNumber": "Project 1", 
    "opportunity": null, 
    "marketSegment": null, 
    "createdBy": "me" 
    "plannedCreateDate": 1496556000000, 
    "createDate": 1496556000000, 
    "ticketStatus": "SUBMITTED", 
    "ticketObjective": null, 
    "equipment": 3, 
    "ticketResult": null 
    "ticketConclusion": null, 
    "pivotuser": null 
} 

響應:重200張

獲取門票:

"content": [ 
    { 
     "id": 26, 
     "version": 0, 
     "ticketNumber": "Ticket 1", 
     "ticketName": "T1 name", 
     "location": "somewhere", 
     "description": "desc", 
     "customerName": null, 
     "projectNumber": "Project 1", 
     "opportunity": null, 
     "marketSegment": null, 
     "createdBy": "me", 
     "plannedCreateDate": 1496556000000, 
     "createDate": 1496556000000, 
     "ticketStatus": "SUBMITTED", 
     "ticketObjective": null, 
     "equipment": null, 
     "ticketResult": null, 
     "ticketConclusion": null, 
     "pivotuser": null 
    }, 
    { 
     "id": 27, 
     "version": 0, 
     "ticketNumber": "Ticket 1", 
     "ticketName": "T1 name", 
     "location": "somewhere", 
     "description": "desc", 
     "customerName": null, 
     "projectNumber": "Project 1", 
     "opportunity": null, 
     "marketSegment": null, 
     "createdBy": "me", 
     "plannedCreateDate": 1496556000000, 
     "createDate": 1496556000000, 
     "ticketStatus": "SUBMITTED", 
     "ticketObjective": null, 
     "equipment": { 
      "id": 4, 
      "version": 0, 
      "manufacturer": "manufacturer 1", 
      "masterNumber": "master number 1", 
      "ticket": { 
       "id": 27, 
       "version": 0, 
       "ticketNumber": "Ticket 1", 
       "ticketName": "T1 name", 
       "location": "somewhere", 
       "description": "desc", 
       "customerName": null, 
       "projectNumber": "Project 1", 
       "opportunity": null, 
       "marketSegment": null, 
       "createdBy": "me", 
       "plannedCreateDate": 1496556000000, 
       "createDate": 1496556000000, 
       "ticketStatus": "SUBMITTED", 
       "ticketObjective": null, 
       "equipment": 4, 
       "ticketResult": null, 
       "ticketConclusion": null, 
       "pivotuser": null 
      } 
     }, 
     "ticketResult": null, 
     "ticketConclusion": null, 
     "pivotuser": null 
    } 

票26沒有改變。票據27是用設備參考= 4創建的。 我在做什麼錯誤。這是我的第一個JSON項目。

回答

0

只需在JSON請求正文中包含idversion字段。如果缺少任何一項JPA EntityManager將創建一個新項目(如您找到的那樣)。

祝你好運!

+0

這就是答案!謝謝! – Patrick