如何使用 Spring 引导在 Mysql 数据库中插入日期属性

How can I insert a Date attribute in Mysql DB using Spring boot

我需要你的帮助,我一直在尝试使用 SpringBoot 和 JPA 将日期字段添加到数据库中,但是当我尝试这样做时将数据插入 null,我的意思是,所有其他字段都可以很好地识别使用Json,但日期字段为空。我发现了其他关于它的问题,但我还没有能够解决它。我还尝试更改日期字段上方的注释,但没有成功。感谢任何帮助,谢谢!

来自我的实体“会员”

@JsonFormat(pattern="yyyy-MM-dd")
@Column(name = "birth_day")
private Date birth_day;

来自我的控制器

@PostMapping()
@ResponseStatus(value = HttpStatus.CREATED)
public ResponseEntity<Member> save(@Validated @RequestBody Member input) {
    memberRepository.save(input);
    return ResponseEntity.ok().body(input);
}

这是Json我创建并通过body

{
    "name": "test",
    "last_name": "test",
    "phone": "test",
    "birth_day": "1991-04-05",
    "home_address": "test"
}

这是我得到的回复

{
    "id": 12,
    "name": "test",
    "last_name": "test",
    "phone": "test",
    "birth_day": null,
    "home_address": "test"
 }

就我所见,其余字段创建没有问题,但字段 birth_day 是数据库中的空 DateTime。

顺便说一句,我正在使用 Mysql 5.7.22 和 Java 11

Date 注释的 @JsonFormat 还需要 shape 参数,如 here 所示。所以要使用的片段是

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
@Column(name = "birth_day")
private Date birth_day;