Sto lavorando alla creazione di un kit di conformità annotazione JPA 2.0 per il mio stage. Al momento, mi chiedo quando è richiesta un'annotazione @MapKeyTemporal e quando è facoltativa ...Qual è il TemporalType predefinito per una chiave di mappa temporale senza un'annotazione @MapKeyColumn o @MapKeyTemporal?
So che quando si definisce la colonna della chiave mappa utilizzando @MapKeyColumn, il tipo di chiave deve essere mappata a può essere derivato guardando il tipo della colonna (e altrimenti il tipo nella columndefinition). Pertanto, in questo caso, non è necessaria alcuna annotazione @MapKeyTemporal.
Quando si allega l'annotazione @MapKeyTemporal, il nome della colonna viene impostato su ATTRIBUTE + "_KEY".
Quando non si annota @MapKeyColumn e @MapKeyTemporal, il nome della colonna viene impostato su ATTRIBUTE + "_KEY", ma a quale tipo viene impostato il valore predefinito della chiave? O dovresti ricevere un errore?
Ho cercato una situazione simile e ho trovato @MapKeyEnumerated. È lo stesso perché è correlato a @MapKeyColumn ed è un valore che può essere associato a più tipi di dati (java.sql.Date/java.sql.Time/java.sql.Timestamp
per @MapKeyTemporal e EnumeratedType.ORDINAL
/EnumeratedType.STRING
per @MapKeyEnumerated). Ho trovato una differenza: @MapKeyEnumerated ha un valore predefinito. Questo valore predefinito è EnumeratedType.ORDINAL
.
La mia domanda: Quando si utilizza una mappa che ha una chiave mappa il cui tipo di base è un tipo temporale, qual è il TemporalType di default (secondo JPA 2.0) a cui la chiave della mappa viene convertito per la persistenza?
Mi chiedo se mettere una taglia su questo, ma non sono sicuro che avrò una risposta. Qualcuno potrebbe dirmi come migliorare la mia domanda quindi potrò ottenere una risposta (possibilmente con una taglia di 50)? – Pimgd