スプリングブート+スプリングデータJPA + Java 8日時(JSR310)
Spring起動+ SpringデータJPAアプリケーションでは、JSR310
java.time。** 'APIをサポートするために、この
Jsr310JpaConverters`を手動で登録する必要があります。
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters;
@EntityScan(
basePackageClasses = {Application.class, Jsr310JpaConverters.class}
)
@SpringBootApplication
public class Application {
//...
}
P.S Springブートでテスト済み1.5.1.RELEASE、SpringデータJPA 1.11.0.RELEASE
1.完全な例
1.1モデルには `java.time.LocalDate`フィールドが含まれています。
package com.mkyong.model;
import javax.persistence.** ;
import java.time.LocalDate;
@Entity
public class Customer {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "CUST__SEQ")
@SequenceGenerator(sequenceName = "customer__seq", allocationSize = 1, name = "CUST__SEQ")
Long id;
String name;
@Column(name = "CREATED__DATE")
LocalDate date;
//...
1.2
@ EntityScan`は以下のように
Jsr310JpaConverters`をスキャンして登録します:
package com.mkyong;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.data.jpa.convert.threeten.Jsr310JpaConverters;
import java.util.Arrays;
//for jsr310 java 8 java.time.**
@EntityScan(
basePackageClasses = {Application.class, Jsr310JpaConverters.class}
)
@SpringBootApplication
public class Application {
public static void main(String[]args) throws Exception {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner run(ApplicationContext appContext) {
return args -> {
System.out.println("hello World!");
};
}
}
参考文献
JavaDoc]。
JSR 310:Date and Time API
-
リンク://mongodb/spring-data-mongodb-jsr-310-or-java-8-new-date-apis/[Spring
データMongoDB + JSR-310またはJava 8の新しいDate API]