Ответ 1
Я попробую это снова. В есть обсуждение. Последнее обсуждение выглядит так:
mkarg сказал: хотя это абсолютно правильно, технический ответ немного сложнее: какой последний предикат делает тип данных право на включение в набор обязательных сопоставлений типов?
Можно сказать, что предикат является "существенным" или "общим" использовать ", но кто определяет, что такое" основное "или" общее использование "? некоторые приложения, поддержка java.awt.Image и java.net.URL могут быть гораздо более важным, чем поддержка LocalDate или ZonedDateTime. На с другой стороны, другие приложения могут быть заполнены LocalDate, но никогда не использует Instant Так где именно сделать разрез? Это становится особенно сложный, если посмотреть на огромное количество найденных типов в JRE, и очевидно, что где-то должен быть разрез. Четный JavaFX, входящий в комплект JRE, по-прежнему не поддерживает Instant в v8, так зачем же JPA? И, глядя на текущий прогресс Проект Jigsaw, возможно, предикат квалификации может быть просто ответил "все типы в определенном модуле головоломки"?
В любом случае, это не мое решение. Я поддерживаю вашу просьбу, и хотелось бы увидеть поддержку для всех времен Java Time API, особенно для Instant и Duration, и ваш запрос имеет видное сторонники, как например, Java чемпион Арун Гупа, как я узнал относительно недавно. Но я сомневаюсь, что окончательный ответ будет так же просто удовлетворительным как мы хотели бы иметь это.
Может быть, было бы лучше просто установить другую JSR, например, "Common Преобразование типов данных для платформы Java ", которая предоставляет гораздо больше сопоставления, а не только дата и время, но также не будут связаны с JPA но также может использоваться JAXB, JAX-RS и, возможно, более API, дело в чем проблема превращения "в"? Наличие такого транспортного средства действительно уменьшит шаблон.
TL-DR; Есть много типов. Мы должны были провести черту где-то.
Существует новая проблема, которая будет добавлена в будущую версию JPA.
Еще один интересный анализ, который я нашел в ветке Дугласа Сурбера (работает в JDBC):
Версия JDBC для JDK 8 включает поддержку большинства типов SQL что соответствует 310 классам.
- ДАТА - LocalDate
- ВРЕМЯ - LocalTime
- TIMESTAMP с зоной вне времени - LocalDateTime
- TIMESTAMP с зоной времени - OffsetDateTime
Версия JDBC для JDK 8 не включает отображение между ИНТЕРВАЛОМ типы и соответствующие 310 классов.
Не существует типа SQL, который точно соответствует любому другому классы. В результате спецификация JDBC молчит для всех других классов.
Я настоятельно рекомендую разработчикам JDBC использовать новые 310 классы. Есть проблемы с java.util.Date, java.sql.Date, java.sql.Time и java.sql.Timestamp. Вы должны рассмотреть их осуждается. 310 классов значительно выше.
Дуглас
TL: DR; Мы просто выбрали один тип Java 8 для каждого из 4 возможных способов хранения временных данных в базе данных.
Наконец, если вы прочитаете эту ветку, то окажется, что существует значительный культурный интерес, чтобы стандартные API были небольшими и простыми.