Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Odwzorowania relacyjno-obiektowe Hibernate uzupełnienie.

Podobne prezentacje


Prezentacja na temat: "Odwzorowania relacyjno-obiektowe Hibernate uzupełnienie."— Zapis prezentacji:

1 Odwzorowania relacyjno-obiektowe Hibernate uzupełnienie

2 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 2 2 Plan wykładu Dziedziczenie Konfiguracja Statystyki MetaDane Nazewnictwo

3 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 3 Dziedziczenie (strategy=InheritanceType.TABLE_PER_CLASS) (strategy=InheritanceType.JOINED) (strategy=InheritanceType.SINGLE_TABLE)

4 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 4 public class = "Slownik_SEQUENCE", sequenceName = = "Slownik_SEQUENCE") private int id; private String nazwa; }

5 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 5 Dziedziczenie public class TypProcesora extends Slownik {} TypProcesora slownik = null; if (slownikId == -1) slownik = new TypProcesora(); else slownik = (TypProcesora) slownikService.get(slownikId); Slownik slownik = slownikService.get(slownikId);

6 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 6 Dziedziczenie (IV) - TABLE_PER_CLASS Oddzielna tabela w bazie danych dla każdej klasy dziedziczącej Mniejsze wykorzystanie pamięci w bazie danych Prostszy import danych, łatwiejsza administracja bazą danych Niska efektywność zapytań

7 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 7 Dziedziczenie (V) - SINGLE_TABLE Pojedyncza tabela w bazie danych dla wszystkich klas dziedziczących Znaczna liczba pustych komórek w tabeli (kolumny tabeli są sumą kolumn dla każdej klasy) Dodatkowa kolumna dtype z nazwa klasy Trudności w imporcie danych Wysoka efektywność zapytań

8 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 8 8 Konfiguracja (I) true hibernate.dialect = org.hibernate.dialect.PostgreSQLDialect hibernate.default_schema = example hibernate.hbm2ddl.auto = update hibernate.show_sql = false hibernate.format_sql = false

9 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 9 9 Konfiguracja (II) hibernate.connection.isolation hibernate.generate_statistics = true hibernate.jdbc.batch_size 20 hibernate.default_batch_fetch_size hibernate.cache.use_query_cache hibernate.cache.use_second_level_cache

10 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 10 Konfiguracja (III) hibernate.c3p0.min_size=5 hibernate.c3p0.max_size=20 hibernate.c3p0.timeout=300 hibernate.c3p0.max_statements=50 hibernate.c3p0.idle_test_period=300

11 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 11 Loging log4j.logger.org.hibernate.tool.hbm2ddl = error org.hibernate org.hibernate.SQL org.hibernate.type org.hibernate.cache org.hibernate.secure org.hibernate.jdbc org.hibernate.transaction

12 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 12 Statystyka getHibernateTemplate().getSessionFactory().getStatistics() isStatisticsEnabled() getEntityLoadCount() getTransactionCount() getSuccessfulTransactionCount()

13 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 13 MetaDane ClassMetadata uMeta = sessionfactory.getClassMetadata(Uzytkownik.class); Object[] propertyValues = uMeta.getPropertyValues(uzytkownik); String[] propertyNames = uMeta.getPropertyNames(); Type[] propertyTypes = uMeta.getPropertyTypes();

14 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 14 Naming Strategy (I) public class MyNamingStartegy extends DefaultNamingStrategy public String classToTableName(String className) { return "kura_" + super.classToTableName(className); }...

15 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 15 Naming Strategy (II)

16 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 16 batch-size Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); for ( int i=0; i<100000; i++ ) { Uzytkownik uzytkownik = new Uzytkownik(.....); session.save(uzytkownik); if ( i % 20 == 0 ) { session.flush(); session.clear(); }} tx.commit(); session.close();

17 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 17 First-level Cache getHibernateTemplate().evict(Object) getHibernateTemplate().clear()

18 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 18 Second-level Cache getHibernateTemplate().getSessionFactory().evict (Haslo.class); //deprecated getHibernateTemplate().getSessionFactory().evict (Haslo.class,id); //deprecated

19 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 19 Query cache Query uzytkownikByImie = session.createQuery("from Uzytkownik u where u.imie = :imie"); uzytkownikByImie.setString(Marek", imie); uzytkownikByImie.setCacheable(true); uzytkownikByName.setCacheRegion ("UzytkownikQueries")

20 Odwzorowania relacyjno-obiektowe Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego 20 Exception DBCConnectionException - wskazuje błąd komunikacji na poziomie JDBC SQLGrammarException - wskazuje problem z gramatyką i składną polecenia SQL. ConstraintViolationException - naruszenie integralności danych LockAcquisitionException - problem naruszenie (nabycia) blokady GenericJDBCException - inne


Pobierz ppt "Odwzorowania relacyjno-obiektowe Hibernate uzupełnienie."

Podobne prezentacje


Reklamy Google