Załóżmy, że mam User
podmiot takiego:Czy właściwości odwzorowane w pliku hbm.xml mogą być przejściowe?
class User {
private String login;
transient private String hashedPassword;
}
nie chcę, aby kiedykolwiek przenieść hashedPassword
do klientów, więc robię to przemijające.
Ta klasa jest odwzorowywana przez Hibernate, przy czym oba pola są odwzorowane w pliku hbm.xml.
Czy ta implementacja jest bezpieczna i poprawna? Czy Hibernate poprawnie przechowuje hashedPassword
w bazie danych, ładuje je do obiektów z bazy danych, zachowuje je w replikowanej pamięci podręcznej drugiego poziomu i lokalnej pamięci podręcznej sesji itp?
W słowach, czy Hibernate lub cache drugiego poziomu szacunek transient
w jakikolwiek sposób lub całkowicie go ignorować?
EDYTOWANIE: Otrzymałem już dwie odpowiedzi, które nie zawierały jednego konkretnego aspektu równania. W ogóle nie używam adnotacji, tylko odwzorowania XML w hbm.xml
. I to pole przejściowe Java jest mapowane na OR w hbm.xml
.
Dziękuję, ale szczególnie wspomniałem, że pole jest mapowane w pliku hbm.xml. W ogóle nie wzywam adnotacji. –
Czy Hibernacja rzeczywiście odwzorowuje właściwość w takim przypadku? Zakładałem, że adnotacje i plik hbm.xml zachowują się tak samo, ale być może tak nie jest. Ponieważ 'transient' zapewnia, że właściwość nie jest serializowana, czy twoje pytanie dotyczy wyłącznie zachowania Hibernacji? – wrschneider