-2

我有一个 POJO,我以JSON格式存储在BLOBMySQL 数据库表的列中。有问题的 POJO 有一个LocalDateTime字段,每当我将数据保存到该列时,该LocalDateTime字段采用此问题中描述的格式,而我希望它以 yyyy-MM-dd hh:mm:ss 格式表示

我已经尝试实施链接帖子中建议的解决方案,但它们都没有奏效。我的猜测是,这与该字段是 POJO 的一部分这一事实有关,BLOB而不是传统Timestamp字段。

这是我的 POJO 的代码

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"
}
4

2 回答 2

0

您的案例的正确注释应该是:

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss")
    private LocalDateTime dateTime;

可以在此处找到描述此解决方案的完整问题:Spring Data JPA - ZonedDateTime format for json serialization。而且,你为什么要把你的 POJO 持久化到 BLOB 中呢?至少,使用 CLOB(BLOB 代表B inary L arge OB ject,CLOB 代表C haracter L arge OB ject)。但实际上,您可能应该考虑在大多数情况下(如果不是所有情况)应该足够的 VARCHAR2 字段。

于 2020-08-10T07:54:15.577 回答
0

我认为你应该使用@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss"),因为你也需要那些时间价值。如果没有替换为 LocalDate 并保留您当前的正则表达式格式。

于 2020-08-09T16:16:39.153 回答