Pracuję nad utworzeniem zestawu zgodności adnotacji JPA 2.0 dla mojego stażu. W tej chwili zastanawiam się, kiedy adnotacja @MapKeyTemporal jest wymagana i kiedy jest opcjonalna ...Jaki jest domyślny typ TemporalType dla tymczasowego klucza mapy bez adnotacji @MapKeyColumn lub @MapKeyTemporal?
Wiem, że gdy definiujesz kolumnę klucza mapy za pomocą @MapKeyColumn, typ klucza powinien być odwzorowany na można wyprowadzić, patrząc na typ kolumny (a poza tym na typ w columndefinition). Dlatego w tym przypadku adnotacja @MapKeyTemporal nie jest konieczna.
Po dołączeniu adnotacji @MapKeyTemporal nazwa kolumny ma domyślnie ATTRIBUTE + "_KEY".
Gdy adnotacja @MapKeyColumn i @MapKeyTemporal, nazwa kolumny jest domyślnie ATTRIBUTE + "_KEY", ale do jakiego typu klucz jest domyślny? A może masz błąd?
Szukałem podobnej sytuacji i znalazłem @MapKeyEnumerated. Jest to to samo, ponieważ jest związane z kolumną @MapKeyColumn i jest to wartość, którą można odwzorować na wiele typów danych (java.sql.Date/java.sql.Time/java.sql.Timestamp
dla @MapKeyTemporal i EnumeratedType.ORDINAL
/EnumeratedType.STRING
dla @MapKeyEnumerated). Znalazłem jedną różnicę: @MapKeyEnumerated ma wartość domyślną. Ta wartość domyślna to EnumeratedType.ORDINAL
.
Moje pytanie: Podczas korzystania z mapy, która ma klucz mapy, którego podstawowym typem jest typ czasowy, jaki jest domyślny TemporalType (zgodnie z JPA 2.0), do którego klucz mapy jest konwertowany w celu zachowania trwałości?
Zastanawiasz się nad przyznaniem nagrody, ale nie jestem pewien, czy uda mi się uzyskać odpowiedź. Czy ktoś mógłby mi powiedzieć, jak poprawić moje pytanie, więc będę w stanie uzyskać odpowiedź (być może z nagrodą w wysokości 50)? – Pimgd