Wpis z mikrobloga

#programowanie #java #spring #hibernate #orm

Mam obiekt, który chcę zapisać w bazie. Obiekt jako id ma inny obiekt (value object). Korzystam z adnotacji @EmbeddedId. Czy to poprawne?
Mam problem podczas generowania id. W adnotacji @GenericGenerator muszę przekazać generator id. Chciałbym aby był on taki jak ten domyślny, czyli automatycznie dodawał jeden do ostatniej wartości w bazie danych (auto increment). Jak to dobrze rozwiązać?

Albo inne podejście. Zamiast użyć @EmbeddedId, zmusić hibernate aby myślał żeby ten obiekt id jest prymitywem. Np. poprzez toString(). Da się tak?
  • 9
@siemanko: Composite Key to po prostu 'złożony klucz', czyli nie pojedyńcze pole z encji, a, jak w Twoim przypadku, cała klasa UserId.

Widzę problem z Twoim kodem - chcesz użyć generatora auto-increment, a Twoim kluczem jest String. Spróbuj utworzyć własny generator, coś jak:

http://blog.anorakgirl.co.uk/2009/01/custom-hibernate-sequence-generator-for-id-field/

Nie sugeruj się jednak moimi odpowiedziami za bardzo, moja wiedza nt. Hibernate'a jest szczątkowa, i mocno przestarzała (3.x) ;]
@kisi3l: Ok, dzięki za pomoc. Właśnie obecnie używam własnego generatora i używam UUID, ale boję się o konflikty. To co podesłałeś jest chyba tym czego szukam, tylko nie wiem jak z wydajnością.