mysql datetime映射到JPA Temporal.Type TIMESTAMP。JSON响应中只获取日期,不获取时间
下面是一个场景 我有一个JPA实体类,其字段为mysql datetime映射到JPA Temporal.Type TIMESTAMP。JSON响应中只获取日期,不获取时间,mysql,json,datetime,jpa,resteasy,Mysql,Json,Datetime,Jpa,Resteasy,下面是一个场景 我有一个JPA实体类,其字段为 @Temporal(TemporalType.TIMESTAMP) @Column(name=“CREATED_DATE”,length=19) private Date createdDate=null 此字段映射到表中创建的日期列,其类型为datetime(我使用的是mysql) 当我选择表中的行时,CREATED_DATE列将同时显示日期和时间。当我使用query.getSingleResult获取行数据并将返回的对象类型转换为Entity类
@Temporal(TemporalType.TIMESTAMP)
@Column(name=“CREATED_DATE”,length=19)
private Date createdDate=null代码>
此字段映射到表中创建的日期列,其类型为datetime
(我使用的是mysql)
当我选择表中的行时,CREATED_DATE列将同时显示日期和时间。当我使用query.getSingleResult
获取行数据并将返回的对象类型转换为Entity类时,Entity类的createdDate
字段也有日期和时间:
request = (MyEntityClass) query.getSingleResult();<br>
System.out.println(request.getCreatedDate());
控制台输出:
Response getResource::200:[{……,“createdDate”:“18-05-2012”…}]
我正在服务器端使用RestEasy Json api。
我在SO中看到了一个类似的问题(),但这里讨论的答案似乎不适用于我
请提供帮助。问题与对象序列化为JSON的方式有关。您可能以某种方式(注释、默认实现、配置文件)对其进行了配置,以便以这种方式序列化日期。问题与对象序列化为JSON的方式有关。这就是你应该在问题中描述的。我并没有显式地序列化任何对象。我现在应该怎么做来纠正这个问题呢?对象不会自动变成JSON字符串。您至少通过一些注释或配置文件配置了框架来为您序列化它。非常感谢@JBNizet。我必须更改MessageBodyWriter类,该类已将默认日期格式设置为“dd-MM-yyyy”。如果您可以添加上述注释作为答案,我将接受答案和注释,并更改代码。有一个javax.ws.rs.ext.MessageBodyWriter
和一个javax.ws.rs.ext.MessageBodyReader
,其中java.text.DateFormat
字段设置为“dd-MM-yyyyy”,只需将其更改为“dd-MM-yyyyyy hh:MM:ss”。谢谢你指出问题所在。
ClientResponse<String> response = clientRequest.get(String.class);
System.out.println("Response getResource ::"+response.getStatus()+"::"+response.getEntity());