Odwzorowania relacyjno-obiektowe Hibernate Tranzakcyjność i bezpieczeństwo danych
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 Transakcja Session session = factory.openSession(); try { session.getTransaction().setTimeout(3); session.getTransaction().begin(); session.getTransaction().commit(); } catch (RuntimeException e) { session.getTransaction().rollback(); throw e; } finally {session.close();}
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Transactional ( propagation=Propagation.REQUIRED, isolation=Isolation.SERIALIZABLE, timeout = 3, readOnly = false )
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4 Propagation NEVER - bez transakcji lub rzuca wyjątkiem NOT_SUPPORTED - bez transakcji lub zawiesza aktualną SUPPORTS - wspiera bieżącą lub bez transakcji MANDATORY - wspiera bieżącą lub rzuca wyjątkiem REQUIRED - wspiera bieżącą lub tworzy nową REQUIRES_NEW - tworzy nową i zawiesza bieżącą
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5 Izolacja hibernate.connection.isolation = 4 1Read uncommitted isolation 2Read committed isolation 4Repeatable read isolation 8Serializable isolation
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 Izolacja
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 LockMode LockMode.NONE LockMode.READ LockMode.UPDGRADE LockMode.UPDGRADE_NOWAIT LockMode.WRITE
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8 LockMode Session. load(entityClass, id, LockMode.UPGRADE_NOWAIT); Session. lock(Object, lockMode.READ); Query.setLockMode(lockMode.WRITE);
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9 LockMode Transaction tx = session.beginTransaction(); Uzytkownik uzytkownik = (Uzytkownik) session.get(Uzytkownik.class, id, LockMode.UPGRADE); uzytkownik.setImie(Marek"); tx.commit();
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10 Tryby synchronizacji danych FlushMode.AUTO (domyślny) - flush(), koniec transakcji, niektóre zapytania FlushMode.COMMIT - flush(), koniec transakcji FlushMode.NEVER - flush()
Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11 OptymisticLock Oparty o dodatkowe pole z adnotacją int optlock; Nieograniczony dostęp do czytania danych Przy próbie zapisu obiektu sprawdzany numer wersji