这是场景。
我有一个带有字段的 JPA 实体类
@Temporal(TemporalType.TIMESTAMP)
@Column(name = "CREATED_DATE", length = 19)
private Date createdDate = null;
并且此字段映射到表中类型为 datetime
(我使用的是 mysql)的 CREATED_DATE 列。
当我选择
表的行时,CREATED_DATE 列同时显示日期和时间。当我使用 query.getSingleResult
获取行数据并将返回的对象类型转换为实体类时,实体类的 createdDate
字段也同时具有日期和时间:
request = (MyEntityClass) query.getSingleResult();<br>
System.out.println(request.getCreatedDate());
在 catalina.out 日志中打印 2012-05-18 06:32:57.0
。
现在我将这个实体类对象作为 Json 对象发送到特定的客户端请求。客户端收到的 Json 响应在打印时不显示日期时间,它只显示日期:
ClientResponse<String> response = clientRequest.get(String.class);
System.out.println("Response getResource ::"+response.getStatus()+"::"+response.getEntity());
控制台输出:
响应 getResource::200::[{ ......,"createdDate":"18-05-2012", ......}]
我在服务器端使用 RestEasy Json api。
我在 SO 中看到了类似的问题 ( similar SO post ),但那里讨论的答案似乎对我不起作用。
请帮忙。
最佳答案
问题与对象序列化为 JSON 的方式有关。您可能以一种或另一种方式配置它(注释、默认实现、配置文件),以便以这种方式序列化日期。
关于映射到 JPA Temporal.Type TIMESTAMP 的 mysql 日期时间。仅获取日期,JSON 响应中没有时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10648154/