Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Odwzorowania relacyjno-obiektowe Hibernate relacje.

Podobne prezentacje


Prezentacja na temat: "Odwzorowania relacyjno-obiektowe Hibernate relacje."— Zapis prezentacji:

1 Odwzorowania relacyjno-obiektowe Hibernate relacje

2 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Typy relacji Reprezentacja relacji przy pomocy pól typu innej encji, bądź też kolekcji encji Mnogościowy podział relacji –Jeden do jednego –Jeden do wielu –Wiele do jednego –Wiele do wielu Kierunkowy podział relacji –Relacja dwukierunkowa –Relacja jednokierunkowa

3 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 Relacje dwukierunkowe Kierunkowość determinuje możliwość nawigacji między powiązanymi instancjami klas trwałych. Asocjacja dwukierunkowa jest definiowana jako para asocjacji jednokierunkowych, ze wskazaniem jednej z nich jako głównej. W przypadku związku dwukierunkowego konieczne jest wskazanie właściciela relacji za pomocą elementu mappedBy Dla związków dwukierunkowych trzeba pamiętać, że w celu powiązania instancji dwóch encji ze sobą należy dokonać powiązania dla obu stron związku.

4 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego OneToOne { Class targetEntity( ) default void.class; CascadeType[] cascade( ) default {}; FetchType fetch( ) default EAGER; boolean optional( ) default true; String mappedBy( ) default ""; }

5 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu public class Uzytkownik implements Serializable private int id; private private Adres adres; }

6 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 Relacje - public class Uzytkownik private int id; private private Adres adres; }

7 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 Relacje - public class Adres private int id; private String miasto; private String private Uzytkownik uzytkownik; }

8 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego OneToMany { Class targetEntity( ) default void.class; CascadeType[] cascade( ) default {}; FetchType fetch( ) default LAZY; String mappedBy( ) default ""; } Parametr mappedBy– nazwa pola klasy po drugiej stronie relacji

9 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego ManyToMany { Class targetEntity( ) default void.class; CascadeType[] cascade( ) default {}; FetchType fetch( ) default LAZY; String mappedBy( ) default ""; }

10 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego - public class Uzytkownik private int id; private = uzy_proj", joinColumns = uzytkownik_ID"), inverseJoinColumns = projekt_ID")) private Collection projekty; }

11 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego (I) Kolekcja może zostać uporządkowana według określonych kryteriów W przypadku kolekcji uporządkowanej wykorzystać należy typ List

12 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego public class Uzytkownik private int id; private protected List dzieci; }

13 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Parametr name – nazwa tabeli Parametr joinColumns – kolumna tabeli złączenia, stanowiąca klucz dla encji Parametr inverseJoinColumns – kolumna tabel złączenia, stanowiąca klucz dla encji po drugiej stronie relacji

14 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 Operacje kaskadowe –Definiowane dla relacji w encjach –Automatyczna propagacja operacji w głąb hierarchii relacji Oznacza to, że wszystkie operacje na encji mają powodować wykonanie takiej samej operacji dla powiązanych encji

15 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15 Typy operacji kaskadowych (I) CascadeType.PERSIST – włączanie nowej encji do kontekstu CascadeType.MERGE – aktualizacja encji CascadeType.REMOVE – usuwanie encji CascadeType.REFRESH – odświeżanie stanu encji z bazy CascadeType.DETACH – odłączenie kolekcji CascadeType.ALL– wszystkie powyższe

16 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 Typy operacji kaskadowych = DELETE_ORPHAN) private List ocenaLista = new ArrayList orphanRemoval = true ) private List ocenaLista = new ArrayList ();

17 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 Ładowanie leniwe Parametr fetch dla adnotacji relacyjnych –FetchType.EAGER – pobieranie natychmiastowe – domyślne –FetchType.LAZY – pobieranie opóźnione – domyślne Opóźnione pobranie encji jest możliwe jedynie, gdy podstawowa encja jest w stanie managed Próba pobrania encji oznaczonej jako LAZY i znajdującej się w stanie Detached spowoduje wyrzucenie wyjątku.

18 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Inicjalizacja public Uzytkownik getUzytkownik(int id) { Uzytkownik uzytkownik = this.get(id); if (uzytkownik != null) { Hibernate.initialize(uzytkownik.getProjekt()); Hibernate.initialize(uzytkownik.getDzieci()); } return uzytkownik; }

19 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego private List slowaKluczowe = new ArrayList ();

20 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20 Przykłady DELETE_ORPHAN) DaneSerwisowe daneSerwisowe = new DaneSerwisowe();

21 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 21 Przykłady relacji private Dostawca dostawca;

22 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 22 Przykłady relacji private private List urzadzeniaLista = new ArrayList ();

23 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 23 Przykłady relacji Uzytkownik DELETE_ORPHAN) private List adresLista = new ArrayList ();

24 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 24 Przykłady relacji Set uzytkownicy = new HashSet = "uzytkownicy") private Set grupy = new HashSet ();

25 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 25 Przykłady relacji cascade=CascadeType.ALL) private List rodzajSprzetuLista = new ArrayList private List producentLista = new ArrayList ();

26 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 26 Przykłady relacji List posiadaneUmiejetnosciLista = new ArrayList ();


Pobierz ppt "Odwzorowania relacyjno-obiektowe Hibernate relacje."

Podobne prezentacje


Reklamy Google