所有
我在数据库中有一个列,用于捕获和存储日期" yyyy-MM-DD"格式。来自UI的数据是JSON。我用Jackson映射器解析日期如下(属性是cobDate)
我在我的应用程序中使用了sprint boot stack。我的数据库截图如何存储
我通过其进行匹配的服务代码。我在这里使用了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
}
]
}