gpt4 book ai didi

java - @DateTimeFormatter 没有前导零只是 yyyy-MM-dd 作为我的 SQL Spring Boot

转载 作者:行者123 更新时间:2023-11-28 23:29:22 24 4
gpt4 key购买 nike

我在 spring boot 应用程序中使用 sql db。1)sql类型DATE,格式yyyy-MM-DD。

2)当我使用 Temporal 类型时,它以正确的格式提取数据,但是在进行编辑和添加操作时,它似乎不允许。

3) 当我使用 DateTime 格式化程序时,所有操作都正常,但数据拉升,或者在应用程序中添加了前导零,我不希望我的应用程序这样做。员工.java

    @DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name="birth_date")
@NotNull @Past
// @Temporal(TemporalType.DATE)
private Date birthDate;



@DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name="hire_date")
@NotNull
// @Temporal(TemporalType.DATE)
private Date hireDate;

请告知可以做什么,并在我将类型更改为 LocalDate 时添加,它会抛出

There was an unexpected error (type=Internal Server Error, status=500).
could not deserialize; nested exception is org.hibernate.type.SerializationException: could not deserialize

最佳答案

添加 Joda 依赖项会起作用,因为它支持 Locale Date 转换和映射根据 sql 是适当的,并且将被映射为 DATE(在 MySQL 上),即只有没有时间戳的日期/前导零只是 YYYY-MM-DD。在 pom.xml 中添加这些

      <dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>

<dependency>
<groupId>org.jadira.usertype</groupId>
<artifactId>usertype.core</artifactId>
<version>3.1.0.CR1</version>
</dependency>

<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time-hibernate</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time-jsptags</artifactId>
<version>1.1.1</version>
</dependency>

然后将其传递给您的实体类。

@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentLocalDate")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@Column(name="birth_date")
@NotNull
private LocalDate birthDate;`

public LocalDate getBirthDate() {
return this.birthDate;
}

public void setBirthDate(LocalDate birthDate) {
this.birthDate = birthDate;
}`

关于java - @DateTimeFormatter 没有前导零只是 yyyy-MM-dd 作为我的 SQL Spring Boot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37872859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com