有 Java 编程相关的问题?

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

使用RESTfulWebService将数据从UI存储到数据库

全部,

我在数据库中有一列,它以“yyyy-MM-DD”格式捕获和存储日期。来自UI的数据是JSON。我使用Jackson mapper解析日期,如下所示(属性为cobDate)

我在应用程序中使用了sprint引导堆栈。我的数据库屏幕截图,显示其存储方式

enter image description here

我进行匹配的服务代码。我在这里使用了apache提供的日期比较,它忽略了时间。在search参数中,我有一个report Id,它是父类,与保存日期attibute的实体有一对多的关系(实体名称CcarReportWorkflowInstance-我使用parent.getter()获取此列表)

@Transactional
public CcarResponseDTO fetchWfDetails(Long reportId, Date cobDate) {
    CcarResponseDTO ccarResponseDTO = new CcarResponseDTO();
    try {
        CcarReport ccarReport = validateInstSearchParams(reportId, cobDate);
        List<CcarReportWorkflowInstance> filteredRepInstList = StreamSupport.stream(ccarReport.getCcarReportWorkflowInstances())
            .filter(ccarRepWfInst -> DateUtils.isSameDay(cobDate, ccarRepWfInst.getCobDate()))
            .collect(java8.util.stream.Collectors.toList());
        log.info("Filtered workflow instance list size =" + filteredRepInstList.size());
        List<CcarRepWfInstDTO> ccarRepWfInstDTOs = ccarRepWfInstMapper.ccarRepWfInstsToCcarRepWfInstDTOs(filteredRepInstList);
        ccarResponseDTO.setWorkflowInstList(ccarRepWfInstDTOs);
    } catch (Exception e) {
        log.error("Exception while fetch workflow instances =" + e);
        throw new CustomParameterizedException(e.getMessage());
    }
    return ccarResponseDTO;
}

要解析传入JSON的DTO对象

public class CcarRepWfInstDTO implements Serializable {

private Long id;

private Long reportId;

private Long workflowInstanceId;

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
private Date cobDate;

private String frequency;

private String runType;

private String reportVersion;

private String workflowStatus;
}

当我的本地机器(位于伦敦时区以外的机器)运行时,一切都正常。对DEV服务器中运行的相同请求的响应(基于纽约的)。我不知道怎么回事,出了什么问题。为什么杰克逊行为古怪。我错过了什么吗。下面是将持久化列的实体的代码

@Column(name = "COB_DATE", nullable = false)
@Temporal(TemporalType.DATE)
private Date cobDate;

我有一个rest服务,它将根据日期搜索条件返回实体列表,在我的本地应用程序中运行良好。请求对象,搜索结果如下

{
"reportId":"1050",
"cobDate":"2016-12-01"
}

来自在伦敦运行的本地部署服务器的响应

{ "workflowInstList": [
{
  "id": 9050,
  "reportId": 1050,
  "workflowInstanceId": 1833698,
  "cobDate": "2016-12-01",
  "frequency": "Daily",
  "runType": "Fed Submission",
  "reportVersion": "2.4",
  "workflowStatus": null
},
{
  "id": 9850,
  "reportId": 1050,
  "workflowInstanceId": 1835204,
  "cobDate": "2016-12-01",
  "frequency": "Daily",
  "runType": "Fed Submission",
  "reportVersion": "2.4",
  "workflowStatus": null
},
{
  "id": 9350,
  "reportId": 1050,
  "workflowInstanceId": 1834019,
  "cobDate": "2016-12-01",
  "frequency": "Daily",
  "runType": "Fed Submission",
  "reportVersion": "2.4",
  "workflowStatus": null
  }
 ]
 }

来自NY机器的响应

{ "workflowInstList": [
{
  "id": 10600,
  "reportId": 1050,
  "workflowInstanceId": 1854803,
  "cobDate": "2016-11-30",
  "frequency": "Daily",
  "runType": "Fed Submission",
  "reportVersion": "2.4",
  "workflowStatus": null
  }
 ]
}

共 (0) 个答案