Что такое TemporalType по умолчанию для временного ключа карты без аннотации @MapKeyColumn или @MapKeyTemporal?

Я работаю над созданием JPA 2.0 Annotation compliancy kit для своей стажировки. Сейчас меня интересует, когда аннотация @MapKeyTemporal является обязательной, а когда необязательной....

Я знаю, что когда вы определяете столбец ключа карты с помощью @MapKeyColumn, тип, с которым должен быть сопоставлен ключ, может быть получен путем просмотра типа столбца (и иначе типа в определении столбца). Таким образом, в этом случае аннотация @MapKeyTemporal не нужна.

Когда вы подключаете аннотацию @MapKeyTemporal, имя колонки по умолчанию принимает значение ATTRIBUTE + "_KEY".

Когда вы не аннотируете @MapKeyColumn и @MapKeyTemporal, имя столбца по умолчанию принимает значение ATTRIBUTE + "_KEY", но к какому типу по умолчанию относится ключ? Или вы должны получить ошибку?

Я искал похожую ситуацию и нашел @MapKeyEnumerated. Это то же самое, потому что оно связано с @MapKeyColumn и это значение, которое может быть сопоставлено с несколькими типами данных (java.sql.Date/java.sql.Time/java. sql.Timestamp для @MapKeyTemporal, и EnumeratedType.ORDINAL/EnumeratedType.STRING для @MapKeyEnumerated). Я нашел одно отличие: @MapKeyEnumerated имеет значение по умолчанию. Это значение по умолчанию - EnumeratedType.ORDINAL.

Мой вопрос: При использовании карты, имеющей ключ карты, базовый тип которого является временным типом, каков TemporalType по умолчанию (согласно JPA 2.0), в который преобразуется ключ карты для сохранения?

7
задан Pimgd 27 January 2012 в 12:39
поделиться