Я использую версию 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.
@RobbyCornelissen Я могу использовать сущность и dto для одного и того же типа данных, то есть LocalDate, с этим все должно быть в порядке, верно?
Что вы спрашиваете, на что еще нет ответа в моем предыдущем комментарии?
Вот хороший обзор stackoverflow.com/questions/32437550/…
Да, это одно из многих преимуществ java.time, современного API даты и времени Java: мы можем использовать один и тот же тип везде и нам не нужно преобразовывать его в типы java.sql
или из них. Вы совершенно правы, в вашем случае LocalDate
— правильный тип.
Вы можете и должны использовать 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
«Могу ли я использовать LocalDate как для объекта, так и для dto?» Да, вы можете, начиная с JPA 2.2.