[英]OffsetDateTime with Spring Data Couchbase
我正在使用Spring Data Couchbase創建POC,並且新的Java 8 DateTime庫遇到了一個小問題。 我希望保存我的內容並以ISO-8601日期閱讀。 我正在使用OffsetDateTime捕獲具有時區偏移量的完整時間戳。 保存文檔時,我沒有任何問題。 但是,當從數據庫讀取它時,我收到一個映射異常。 我也使用JSR-310依賴項來配置jackson解析。
使用OffsetDateTime是正確的方法嗎? 我應該退后一步,只使用Joda DateTime嗎?
POM依賴項:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-couchbase</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-jsr310</artifactId>
<version>2.6.1</version>
</dependency>
文檔Java類:
@Document
public class Content {
@Id
private Long id;
@CreatedDate
private OffsetDateTime createdDate;
...
}
應用程序YML:
spring:
jackson:
deserialization:
adjust_dates_to_context_time_zone: false
serialization:
write_dates_as_timestamps: false
date-format: yyyy-MM-dd'T'HH:mm:ss.SSSZ
保存時(無問題):
{
...
"createdDate": "2016-06-14T15:25:27.746-04:00",
...
}
讀取時(異常):
{
"timestamp": "2016-06-14T19:26:08.290+0000",
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.data.mapping.model.MappingException",
"message": "No property null found on entity class java.time.OffsetDateTime to bind constructor parameter to!",
"path": "/v1/content/a7d078f1-a0d5-4ec1-89f5-149d850aa372"
}
看起來目前不支持OffsetDateTime和ZoneDateTime。 解決方法是,可以將Joda DateTime與以下配置一起使用。
POM依賴項:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-couchbase</artifactId>
<version>2.1.1.RELEASE</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.9.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.datatype</groupId>
<artifactId>jackson-datatype-joda</artifactId>
<version>2.7.4</version>
</dependency>
文檔Java類:
@Document
public class Content {
@Id
private Long id;
@CreatedDate
private DateTime createdDate;
...
}
應用程序YML:
spring:
jackson:
deserialization:
adjust_dates_to_context_time_zone: false
serialization:
write_dates_as_timestamps: false
date-format: yyyy-MM-dd'T'HH:mm:ss.SSSZ
保存時:
{
...
"createdDate": "2016-06-14T21:55:23.258+0000",
...
}
閱讀時:
{
...
"createdDate": "2016-06-14T21:55:23.258+0000",
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.