我正在尝试默认设置jhipster中实体的最后更改的创建日期和日期。我正在使用MySQL数据库。
我的实体Java代码:
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "creation_date", nullable = false, updatable = false)
@JsonIgnore
private Instant creationDate = Instant.now();
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "change_date", nullable = false)
@JsonIgnore
private Instant changeDate = Instant.now();
我的Html组件:
<td>{{project.creationDate | date:'YYYY-MM-DD'}}</td>
<td>{{project.changeDate | date:'YYYY-MM-DD'}}</td>
MySQL中的数据类型是“日期”。 MySQL表中的字段工作正常。但是前端(Angular)没有显示日期。相反,日期只有一个空字段。我已经尝试了一些不同的格式和数据类型(LocalDate,Date)。
有人知道这个问题的可能解决方案吗?
问题是:你在那些字段上有@JsonIgnore
注释。此批注将阻止该字段序列化为JSON。因此,前端的REST结果中只缺少您的日期。
要验证这一点,您可以在前端显示整个JSON-Object,或者深入了解服务器发送的HTTP响应,例如:使用chrome开发工具或像cURL这样的程序......
并提示创建时间戳:
您可以查看JPA审核内容,例如这里:https://docs.spring.io/spring-data/jpa/docs/current/reference/html/#auditing有两个注释,如@CreatedDate
和@LastModifiedDate
,您可以使用它们自动为您设置审核日期。
如前所述:你应该使用LocalDate
或ZonedDateTime
而不是Instant
。