スプリングブート+スプリングデータ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]