postgresql - 以特定格式将 LocalDate 字段写入数据库
问题描述
我在编写Entity
包含LocalDate
Postgresql 字段的格式时遇到问题"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
由于数据库中填充的列看起来像这样,Annotation 似乎没有任何作用
。
如何将LocalDate
对象格式化为特定模式,以便它可以完全按照我的意愿保存在数据库中?
解决方案
我相信 a@DateTimeFormat
不会影响任何 DBMS 的日期表示。根据弹簧文档:
@DateTimeFormat 声明字段或方法参数应格式化为日期或时间
因此,这意味着此注释允许您为 Web 输出动态格式化日期值,就像@JsonSerialize
来自Jackson
框架一样。日期在 DBMS 管理器中的显示仅取决于数据库管理器中的设置,此外,数据库中的任何日期都保留为十进制值,每个数据库管理器仅通过其设置显示它们
推荐阅读
- mysql - 在 MySQL 中使用 GROUP BY 时间范围时如何显示范围边界
- sql - 这可能与 SQL Server
- python - 编译的 Python 脚本不起作用
- c - 使用 C 获取文本文件中两个特定点之间的特定信息
- php - 我如何在另一个区域内使用带有变量名的 php 变量,就好像我自己键入变量名一样?
- python - “从 xy 导入 z”和“将 xyz 导入为 z”之间的区别
- angular - 如何让 Angular 5 在构造依赖项或 ngOnInit 之前等待 Injectable 构造函数中使用的 Promise 解析?
- c - 将两个字符连接成每个索引中的字符数组
- android - 从 Inkscape 导入的 SVG 未呈现
- python - 将文件夹从 Google Colab 移动到 Google Drive