使用restful webservice将用户界面存储到数据库

时间:2016-07-25 09:30:34

标签: java database date search spring-data-jpa

所有

我在数据库中有一个列,用于捕获和存储日期" yyyy-MM-DD"格式。来自UI的数据是JSON。我用Jackson映射器解析日期如下(属性是cobDate)

我在我的应用程序中使用了sprint boot stack。我的数据库截图如何存储

enter image description here

我通过其进行匹配的服务代码。我在这里使用了apache提供的日期比较,忽略了时间。在搜索参数中,我有报告ID,它是父类,并且对于保存日期属性的实体有一对多(实体名称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服务器(基于newyork的一个)中运行的相同请求。我不知道怎么会出错。杰克逊为什么表现得很奇怪。我是否遗漏了一些东西。下面是要保留专栏的实体代码。

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

我有一个休息服务,它将根据日期搜索条件返回实体列表,该条件在我的本地工作正常。请求对象,搜索结果如下

{
"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 个答案:

没有答案