SpringBoot 2.1.3整合 Elasticserach 6. 4 Java8 LocalDateTime反序列化的問題

對於下列實體類

package com.demo.es.entity;

import java.io.Serializable;
import java.time.LocalDateTime;

import org.springframework.data.annotation.Id;
import org.springframework.data.elasticsearch.annotations.Document;
import org.springframework.format.annotation.DateTimeFormat;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;

import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 
 * </p>
 *
 * @author Raynor
 * @since 2019-03-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("software")
@Document(indexName = "sf", type = "software")
public class EsSoftware implements Serializable {

	private static final long serialVersionUID = 1L;

	@Id
	@TableId(value = "id", type = IdType.AUTO)
	private Integer id;

	/**
	 * 軟件名稱
	 */
	private String name;

	/**
	 * 資源內容
	 */
	private String text;

	/**
	 * 標題
	 */
	private String title;

	/**
	 * 類別
	 */
	private String type;

	/**
	 * 創建時間
	 */
//	private Date date;
	@DateTimeFormat(pattern = "yyyy-MM-dd\'T\'HH:mm:ss.SSS")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)
	private LocalDateTime date;


	/**
	 * 發佈者(關聯到User.id)
	 */
	private Integer userId;

	/**
	 * 評分
	 */
	private float score;

	/**
	 * 圖片
	 */
	private String photo;

	/**
	 * 評分記錄
	 */
	private String scoreLog;

}

在ES執行過程中,LocalDateTime存在無法進行反序列化的異常
需要使用註解:

	@DateTimeFormat(pattern = "yyyy-MM-dd\'T\'HH:mm:ss.SSS")
    @JsonSerialize(using = LocalDateTimeSerializer.class)
    @JsonDeserialize(using = LocalDateTimeDeserializer.class)

其依賴:

		<dependency>
			<groupId>com.fasterxml.jackson.datatype</groupId>
			<artifactId>jackson-datatype-jsr310</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-json</artifactId>
		</dependency>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章