提问人:NecmiK 提问时间:11/13/2023 最后编辑:NecmiK 更新时间:11/13/2023 访问量:32
将 ZonedDateTime 与 Spring Boot 和 OpenSearch 结合使用
Using ZonedDateTime with Spring Boot and OpenSearch
问:
我正在使用 Spring Boot 3.1.2 和 Spring Data Open Search Starter (spring-data-opensearch-starter) 1.2.0 库来保存和读取我的实体/从弹性搜索到弹性搜索。
我的实体的字段类型之一是 ZonedDateTime:
@Builder
@Document(indexName = "orders", writeTypeHint = WriteTypeHint.FALSE)
public class OrderModel {
@Id
private String orderId;
@Field(type = FieldType.Date, pattern = "uuuu-MM-dd'T'HH:mm:ss.SSS", format = {})
private ZonedDateTime orderDate;
private String store;
}
我的存储库扩展了 ElasticsearchRepository:
@Repository
public interface OrderRepository extends ElasticsearchRepository<OrderModel, String> {
}
当我保存我的实体时,我可以看到它已成功保存到弹性搜索:
"_index": "orders",
"_id": "9202107589",
"_score": 1,
"_source": {
"orderId": "9202107589",
"placedDate": "2023-10-23T21:05:37.263",
"store": “ZARA”
}
但是,当我通过调用 orderRepository.existsById(orderId) 读取它时,它会抛出以下转换错误:
org.springframework.data.elasticsearch.core.convert.ConversionException: Unable to convert value '2023-10-23T21:05:37.263' to java.time.ZonedDateTime for property 'orderDate' at org.springframework.data.elasticsearch.core.convert.TemporalPropertyValueConverter.read(TemporalPropertyValueConverter.java:60)
at org.springframework.data.elasticsearch.core.convert.MappingElasticsearchConverter$Reader.convertOnRead(MappingElasticsearchConverter.java:531)
有什么想法可以解决这个问题吗?
尝试创建自定义转换器,但失败。
答: 暂无答案
评论
ZonedDateTime
LocalDateTime
ZonedDateTime
LocalDateTime
toLocalDateTime()
ZonedDateTime
ZonedDateTime
2023-10-23T21:05:37.263+01:00