使用RESTfulWebService将数据从UI存储到数据库
全部,
我在数据库中有一列,它以“yyyy-MM-DD”格式捕获和存储日期。来自UI的数据是JSON。我使用Jackson mapper解析日期,如下所示(属性为cobDate)
我在应用程序中使用了sprint引导堆栈。我的数据库屏幕截图,显示其存储方式
我进行匹配的服务代码。我在这里使用了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) 个答案