W odniesieniu do Twojego pytania: (bo nie mam wystarczająco dużo reputacji, aby odpowiedzieć w komentarzu)
„Wszystko jasne, tylko jedno pytanie więcej, jest to możliwe, aby obrazka użytkownika w Użytkownik leniwe ? - user1731299 Październik 24 '12 at 10:44 "
Tak, to jest możliwe, aby to leniwy aport. Jednak samo powiedzenie "fetchType = FetchType.Lazy" nie będzie działać. Powodem jest, że Hibernate musi sprawdzić połączoną tabelę, aby sprawdzić, czy jest to wartość pusta, czy jest tam zapis. Ponieważ jest to mapowanie OneToOne, Hibernate rysuje, że może zapisać wywołanie bazy danych, po prostu wycofując wszelkie dane, które tam są, ponieważ musiał sprawdzić, czy i tak był pusty. Nie jest tak w przypadku odwzorowań x-do-wielu, ponieważ Hibernate wie, że "wiele" oznacza, że na drugiej tabeli czeka lista ... pusta lub zapełniona lista, to wciąż lista. Dla pojedynczej wartości musi odróżniać rzeczywiste dane od wartości pustej.
Sposób obejścia tego polega na przekazaniu Hibernate, że ZAWSZE będzie tam wartością i NIGDY nie będzie wartością pustą. Wiedząc o tym, Hibernate może stworzyć miejsce pobytu aż do czasu, aby pobrać te dane. Sposób w adnotacjach polega na dodaniu "optional = false" do adnotacji @OneToOne.
Należy jednak zachować ostrożność! Jest w tym kilka problemów; w tym ten, który próbuję rozgryźć teraz (i jak natknąłem się na twoje pytanie tutaj). Opcjonalny = false sprawia, że Hibernate robi trochę dodatkowej weryfikacji i wydaje się mylić Hibernate z tym, jak powinien wykonywać wstawki. Więc możesz chcieć trzymać się z dala od tej leniwej techniki pobierania.
Działa! Dzięki! Ale czy mogę wstawić użytkownika UserPicture użytkownika nie będzie aktualizowany? – user1731299
@ user1731299 Wszystkie rzeczy, które musisz zrobić, aby powiązać 'użytkownika' z' UserPicture', to stworzyć 'UserPicture', wywołać' setUser' na obiekcie i utrzymywać go w DB. – Pigueiras
Poniżej: Frontend poprosił o dodanie obrazu użytkownika do użytkownika A. W mojej usłudze przeładowuję użytkownika A, ustawę tego użytkownika na mój nowy obiekt UserPicture i utworzę/wstawię UserPicture -> pole 'picture' w tabeli user stay stay null. Jeśli im załaduję użytkownika, obraz pola zostanie załadowany .. naprawdę dziwny. – user1731299