以特定格式向数据库写入LocalDate字段

时间:2018-05-04 11:43:20

标签: postgresql spring-boot spring-data-jpa

我无法以Entity

的格式向Postgresql写入包含LocalDate"dd-MM-yyyy"字段的@Entity public class DataUpload { @Id @NonNull @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @NonNull @Column(nullable = false) private final String clinic; @NonNull @Column(nullable = false) @DateTimeFormat(pattern = "dd-MM-yyyy") private final LocalDate startDate; @NonNull @Column(nullable = false) @DateTimeFormat(pattern = "dd-MM-yyyy") private final LocalDate endDate; @NonNull @Column(nullable = false) private final long numRows; @NonNull @Column(nullable = false) @DateTimeFormat(pattern = "dd-MM-yyyy") private final LocalDate dateUploaded; @NonNull @Column(nullable = false) private final boolean processed; public DataUpload() { clinic = "SuperDuperClinic"; startDate = LocalDate.of(2017, Month.JULY, 5); endDate = LocalDate.of(2018, Month.JULY, 5); numRows = 500; dateUploaded = LocalDate.now(); processed = true; } //getters setters }

我的实体看起来像这样。

@DateTimeFormat

似乎LocalDate注释无效,因为数据库中填充的列看起来像这样。 wrong date format

如何将static Bootstrapper() { Caliburn.Micro.DevExpress.DXConventions.Install(); } 对象格式化为特定模式,以便它可以完全按照我的意愿保存在数据库中?

1 个答案:

答案 0 :(得分:0)

我认为@DateTimeFormat不影响任何DBMS的日期表示。根据{{​​3}}:

  

@DateTimeFormat声明字段或方法参数应格式化为a   日期或时间

因此,这意味着此注释允许您动态设置Web输出的日期值,就像@JsonSerialize框架中的Jackson一样。 DBMS管理器中日期的出现仅取决于数据库管理器中的设置,而且数据库中的任何日期都保留为十进制值,每个数据库管理器仅根据其设置显示它们