2017-03-25 9 views
0

私は私のJavaクラス春ブーツ、ジャクソンとLOCALDATE

compile('org.springframework.boot:spring-boot-starter-data-jpa') 
compile('org.springframework.boot:spring-boot-starter-data-rest') 
compile('org.springframework.boot:spring-boot-starter-web') 
compile 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310' 

を持っています

import java.time.LocalDate;

@Entity 
public class WebSite implements Serializable{ 

    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY) 
    private Long webSiteId; 

    private LocalDate date; 
    ... 
} 

この表が作成され、

TINYBLOB

はなぜ日付

答えて

1

これはジャクソンの問題ではなく、何でもということではないように日付フィールドが作成されますORMはJava LocalDateをMySQL Dateに変換する方法を知らないために使用しています。

これを行うには2通りの方法があります。 Hibernateを使用している場合は、単に依存関係にorg.hibernate:hibernate-java8を含めます。

また、JPAのみを使用する場合は、属性変換ツールを作成する必要があります。例:

@Converter(autoApply = true) 
public class LocalDateAttributeConverter implements AttributeConverter<LocalDate, Date> { 

    @Override 
    public Date convertToDatabaseColumn(LocalDate locDate) { 
     return (locDate == null ? null : Date.valueOf(locDate)); 
    } 

    @Override 
    public LocalDate convertToEntityAttribute(Date sqlDate) { 
     return (sqlDate == null ? null : sqlDate.toLocalDate()); 
    } 
} 

属性変換ツールは、Java LocalDateとMySQL Dateの間の変換を処理します。

参照:http://www.thoughts-on-java.org/persist-localdate-localdatetime-jpa/