我使用Spring Boot和Data Rest在Java8中创建一个简单的微服务,并在JSON响应中的日期属性中获得一个错误的序列化值。
我的实体:

@Entity
public class ArchivedInvoice implements Serializable {
    ...
    @Column
    private java.util.Date invoiceDate;
    ...
}

我的存储库界面:
@RepositoryRestResource(collectionResourceRel = "archivedinvoices", path = "archivedinvoices")
public interface ArchivedInvoiceRepository extends PagingAndSortingRepository < ArchivedInvoice, Long > {
    ...
        @RestResource(rel = "findByDate", path = "findByDate")
        public Page< ArchivedInvoice > findByInvoiceDate(@Param("invoiceDate") @Nullable @DateTimeFormat(iso = ISO.DATE) Date invoiceDate, Pageable pageable);
    ...
}

Postgres将属性保存在一个简单的日期(invoice_date date NOT NULL-'2016-02-22')中,但是JSON响应返回:
  "invoiceDate" : "2016-02-21T23:00:00.000+0000"

我怎样才能避免这个?

最佳答案

java.util.Date实际上是一个时间戳:
类日期表示时间上的特定瞬间,毫秒
精确。
如果SQL类型是date,则改用java.sql.Date
或者如果您使用Java8,可以尝试使用java.time.LocalDate。要想成功,你需要register Springs JSR310 JPA converters

09-04 17:49