JPA: Как преобразовать LocalDateTime в LocalDate

Как я могу использовать @NamedQuery, чтобы получить столбец как тип LocalDate, который определен как тип LocalDateTime. Как мне это сделать?

1 ответ

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;

public class Main {
    public static void main(String[] args) {
      LocalDate date = LocalDate.now();
      LocalTime time = LocalTime.now();
      LocalDateTime dateTimeFromDateAndTime = LocalDateTime.of(date, time);

      System.out.println(dateTimeFromDateAndTime);

      LocalDate dateFromDateTime = LocalDateTime.now().toLocalDate();
      LocalTime timeFromDateTime = LocalDateTime.now().toLocalTime();

      System.out.println(dateFromDateTime);

      System.out.println(timeFromDateTime);
 }
}

Я предполагаю, что a column which is defined LocalDateTime type Вы объявили объект с полем LocalDateTime.

Если вы хотите сделать преобразование даты в базе данных, я думаю, вам придется использовать собственный запрос. Если вы не против сделать преобразование в Java, я вижу два варианта:

  • Добавление конвертера в поле вашей сущности, чтобы он мог быть LocalDate, связывающим временную метку ( https://docs.oracle.com/javaee/7/api/javax/persistence/Convert.html)
  • Добавление метода получения @Transient, чтобы вы могли выполнить преобразование в классе сущностей.
Другие вопросы по тегам