2017-06-15 98 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