2016-08-18 3 views
1

У нас есть случай, когда нам нужен только день и месяц, и поэтому мы будем использовать java.time.MonthDay (Javadocs) для представления этой информации.Сопоставление от java.time.MonthDay до java.sql. *

Мы знаем, что мы могли бы создать свой собственный объект JPA для сохранения или просто использовать объект java.sql.Date, но для этого обычно требуется информация о запросе на год. Другим способом является вызов метода .atYear(int) (с фиктивным годом) на него и получить java.time.LocalDate (Javadoc), который можно легко преобразовать в java.sql.Date. Но это склонно пропустить недоразумения в будущем (а также сохранить информацию года).

Есть ли какое-то «элегантное»/предполагаемое решение для этого случая? Или есть замена для SQL, которая поддерживает весь новый API дат и времени для Persistence.

Другим случаем будет java.time.YearMonth (Javadoc).

Спасибо за чтение!

ответ

2

Поскольку базы данных SQL не имеют тип, совместимый с MonthDay, используйте VARCHAR столбцы, а просто использовать toString() и MonthDay.parse().

Или используйте обычай DateTimeFormatter, если вам не нравится формат --12-03.

Формат по умолчанию будет правильно сортировать, как строку.

+0

Спасибо, я дам ему попробовать и оценить, работает ли это решение для меня! – thatsIch

+0

Это отлично работает как замена, поскольку в JPQL вы все еще можете использовать операторы сравнения, потому что 'String' реализует' Comparable' – thatsIch

Смежные вопросы