Java 如何将POJO中的LocalDateTime字段格式化为BLOB
我有一个POJO,它以JSON格式存储在MySQL数据库表的BLOB列中。所讨论的POJO有一个LocalDateTime字段,每当我将数据持久化到列时,LocalDateTime字段采用中描述的格式,而我希望它以yyyy MM dd hh:MM:ss格式表示 我曾尝试实施链接帖子中建议的解决方案,但没有一个奏效。我的猜测是,这与以下事实有关:该字段是BLOB中POJO的一部分,而不是传统的Timestamp字段 这是我的POJO的代码Java 如何将POJO中的LocalDateTime字段格式化为BLOB,java,mysql,json,spring-boot,localdatetime,Java,Mysql,Json,Spring Boot,Localdatetime,我有一个POJO,它以JSON格式存储在MySQL数据库表的BLOB列中。所讨论的POJO有一个LocalDateTime字段,每当我将数据持久化到列时,LocalDateTime字段采用中描述的格式,而我希望它以yyyy MM dd hh:MM:ss格式表示 我曾尝试实施链接帖子中建议的解决方案,但没有一个奏效。我的猜测是,这与以下事实有关:该字段是BLOB中POJO的一部分,而不是传统的Timestamp字段 这是我的POJO的代码 public class MyPOJO { pr
public class MyPOJO {
private Long id;
@JsonFormat(pattern="yyyy-MM-dd")
@DateTimeFormat(iso = DateTimeFormat.ISO.TIME)
private LocalDateTime dateTime;
private String someText;
//Constructors
//Getters and setters
}
欢迎任何意见
这是当前的JSON输出:
{
"id" : 1,
"dateTime" : {
"year" : 2010,
"month" : "JANUARY",
"dayOfMonth" : 1,
"dayOfWeek" : "FRIDAY",
"dayOfYear" : 1,
"monthValue" : 1,
"hour" : 2,
"minute" : 2,
"second" : 0,
"nano" : 0,
"chronology" : {
"id" : "ISO",
"calendarType" : "iso8601"
}
},
"someText": "someText"
}
我认为您应该使用@JsonFormatpattern=yyyy-MM-dd HH:MM:ss,因为您还需要这些时间值。如果没有,请替换为LocalDate并保留当前的正则表达式格式。对于您的案例,正确的注释应该是:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss")
private LocalDateTime dateTime;
描述此解决方案的完整问题可在此处找到:。但是,你为什么要坚持你的POJO成为BLOB呢?至少,use CLOB BLOB代表二进制大对象,CLOB代表字符大对象。但实际上,您可能应该在大多数情况下(如果不是所有情况的话)使用concider VARCHAR2字段。只需在字段上使用@JsonFormatpattern=yyyy-MM-dd就可以了。除此之外,它应该可以工作。确保您发送的是准确的MyPOJO对象作为响应