Рубрики
Без рубрики

Весенняя загрузка + Весенние данные JPA + дата и время Java 8 (JSR 310)

– – Весенняя загрузка + Весенние данные JPA + дата и время Java 8 (JSR 310)

В приложении Spring Boot + Spring Data JPA для поддержки JSR 310 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 Boot 1.5.1.РЕЛИЗ, Spring Data JPA 1.11.0.РЕЛИЗ

1. Полный Пример

1.1 Модель содержит java.time. Локальная дата поле.

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!");
            
        };
    }

}

Рекомендации

  1. Jsr310JpaConвертеры javadoc
  2. JSR 310: API даты и времени
  3. Весенние данные MongoDB + JSR-310 или Java 8 новые API-интерфейсы даты

Оригинал: “https://mkyong.com/spring-boot/spring-boot-spring-data-jpa-java-8-date-and-time-jsr310/”