Hej. Mam pytanie dot. odwzorowań Hibernate. Istnieją dwie metody tworzenia odwzorowań tj. XML oraz adnotacje w plikach klas.
Który rodzaj odwzorowań jest stosowany w przypadku dużych projektów ?
Hej. Mam pytanie dot. odwzorowań Hibernate. Istnieją dwie metody tworzenia odwzorowań tj. XML oraz adnotacje w plikach klas.
Który rodzaj odwzorowań jest stosowany w przypadku dużych projektów ?
Oba. Kluczową sprawą jest ich wzajemne nadpisywanie. XML nadpisuje adnotacje. Zazwyczaj chcąc coś zmienić grzebie się po klasach, ale nie zawsze można tak zrobić. Wtedy nadpisujesz domyślna konfigurację za pomocą XMLa.
Przy czym w nowszych projektach raczej anotacje. PRawde mowiac nie spotkalem sie jeszcze z projektem gdzie zmiana czegokolwiek w mapowaniu nie wymagalaby rozniez grzebanai w kodzie, wiec nie wierze w historyjki o tym ze dodasz xml zmieniasz mapping i wszystko dziala (no moze poza zmianami typu zmiana nazwy kolumny itp, ale i to jest problematyczne bo bardziej skomplikowane projekty tu czy tam maja nazwy tabel w kodzie, chociazby testy).
Przykład - dostajesz paczkę skonfigurowaną wszystko, ładnie pięknie, ale po wpięciu do naszej aplikacji mamy konflikt w nazwie tabeli (typowo użyszkodnicy i adresy). Kodu źródłowego nie opłaca się przegrzebywać, bo kolejna aktualizacja i tak nam usunie nasze zmiany.
No napisalem - nazwa tabeli / kolumny ok, ale zmiana kluczy, mapowan relacji itp. zmienia calkowicie czasami dzialanie hibernate, zimenia sie dynamika i performance itp. i tak czy tak najczesciej (zawsze?) trzebe grzebac w kodzie.