我使用Spring Boot和Data Rest在Java8中創建一個簡單的微服務,並在我的JSON響應的Date屬性中獲取錯誤的序列化值。Spring Data(Rest):日期序列化映射返回一個錯誤的值
我的實體:
@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日期NOT NULL - '2016年2月22日'),但JSON響應回覆:
"invoiceDate" : "2016-02-21T23:00:00.000+0000"
我該如何避免這種情況?
您只需在該字段中輸入['@Temporal(DATE)'annotation](https://docs.oracle.com/javaee/5/api/javax/persistence/Temporal.html)。如果沒有它,JPA會將該字段視爲「時間戳」(顯然與時區)。 – pozs
當我刪除@DateTimeFormat註釋時,這也很好用!謝謝! – user2722077