Какой тип данных использовать в объекте JPA для хранения и получения даты с помощью Java 8

Я использую версию Java 8 в своем приложении, я перепутал использование классов даты Java, таких как java.util.Date и java.time.LocalDate, на уровне сущности и dto. До Java 8 мы использовали либо java.sql.Date, либо java.util.Date, но в Java 8 появился LocalDate, поэтому я могу использовать LocalDate как для объекта, так и для класса dto.

Мой формат даты должен быть либо дд-ММ-гггг, либо дд/ММ/гггг, dto используется в качестве тела запроса Rest API и объекта, поскольку мы знаем, что это модель для сопоставления с базой данных.

Могу ли я использовать LocalDate как для объекта, так и для dto, в столбце таблицы базы данных тип данных — Date.

«Могу ли я использовать LocalDate как для объекта, так и для dto?» Да, вы можете, начиная с JPA 2.2.

Robby Cornelissen 02.07.2024 11:32

@RobbyCornelissen Я могу использовать сущность и dto для одного и того же типа данных, то есть LocalDate, с этим все должно быть в порядке, верно?

Anil Nivargi 02.07.2024 11:41

Что вы спрашиваете, на что еще нет ответа в моем предыдущем комментарии?

Robby Cornelissen 02.07.2024 11:45

Вот хороший обзор stackoverflow.com/questions/32437550/…

Murat Karagöz 02.07.2024 11:47

Да, это одно из многих преимуществ java.time, современного API даты и времени Java: мы можем использовать один и тот же тип везде и нам не нужно преобразовывать его в типы java.sql или из них. Вы совершенно правы, в вашем случае LocalDate — правильный тип.

Anonymous 02.07.2024 12:03
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
5
72
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете и должны использовать java.time.LocalDate. Пакет java.time был представлен в Java 8 и предназначен для замены старых классов java.util.Date и java.sql.Date.

Ответ принят как подходящий

Определенно можно и нужно использовать LocalDate класс. Также вы должны использовать аннотацию

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd-MM-yyyy")

поверх объявления вашей переменной или метода получения для нее. Вот очень хороший вопрос с отличным ответом на ту же тему, но только для класса ZonedDateTime: Spring Data JPA — формат ZonedDateTime для сериализации json

Другие вопросы по теме