Содержание
- 2. Что такое JPA? JPA – Java persistence API. JPA реализует концепцию ORM(object-relational mapping).
- 3. Что такое Entity? Entity – POJO класс, связанный с бд с помощью аннотации или xml конфигурации.
- 4. Что такое JPQL JPQL – Java persistence query language. Используется для написания sql-подобных запросов, оперирующих сущностями.
- 5. Какие есть реализации JPA? -Hibernate -Toplink -Eclipselink -OpenJpa -DataNucleus -ObjectDb
- 6. Сравнение производительности JPA библиотек
- 7. Hibernate
- 8. Configuration properties hibernate.dialect hibernate.show_sql hibernate.format_sql hibernate.default_schema hibernate.default_catalog hibernate.session_factory_name hibernate.max_fetch_depth hibernate.default_batch_fetch_size hibernate.default_entity_mode hibernate.order_updates hibernate.generate_statistics hibernate.use_identifier_rollback hibernate.use_sql_comments
- 9. Configuration properties hibernate.jdbc.fetch_size hibernate.jdbc.batch_size hibernate.jdbc.batch_versioned_data hibernate.jdbc.factory_class hibernate.jdbc.use_scrollable_resultset hibernate.jdbc.use_streams_for_binary hibernate.jdbc.use_get_generated_keys hibernate.connection.provider_class hibernate.connection.isolation hibernate.connection.autocommit hibernate.connection.release_mode
- 10. Configuration properties hibernate.cache.provider_class hibernate.cache.use_minimal_puts hibernate.cache.use_query_cache hibernate.cache.use_second_level_cache hibernate.cache.query_cache_factory hibernate.cache.region_prefix hibernate.cache.use_structured_entries
- 11. Configuration properties hibernate.transaction.factory_class jta.UserTransaction hibernate.transaction.manager_lookup_class hibernate.transaction.flush_before_completion hibernate.transaction.auto_close_session
- 12. Configuration properties hibernate.current_session_context_class hibernate.query.factory_class hibernate.query.substitutions hibernate.hbm2ddl.auto hibernate.cglib.use_reflection_optimizer
- 13. Dialects org.hibernate.dialect.DB2Dialect org.hibernate.dialect.DB2400Dialect org.hibernate.dialect.DB2390Dialect org.hibernate.dialect.PostgreSQLDialect org.hibernate.dialect.MySQLDialect org.hibernate.dialect.MySQLInnoDBDialect org.hibernate.dialect.MySQLMyISAMDialect org.hibernate.dialect.OracleDialect org.hibernate.dialect.Oracle9iDialect org.hibernate.dialect.Oracle10gDialect org.hibernate.dialect.SybaseDialect org.hibernate.dialect.SybaseAnywhereDialect org.hibernate.dialect.SQLServerDialect org.hibernate.dialect.SAPDBDialect org.hibernate.dialect.InformixDialect
- 14. Application Configuration Самостоятельная работа
- 15. hibernate.cfg.xml "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> ? ? ? ? ? ? ? ?
- 16. JPA javax.persistence VS org.hibernate.annotations
- 17. Entities @Entity @Table @Id @GeneratedValue @Column @OneToMany @ManyToOne @ManyToMany @OneToOne
- 18. Entity states
- 19. Methods of session persist, save update, merge delete load, get evict
- 20. @ManyToMany @ManyToMany @JoinTable(name=”?”) @ManyToMany(mappedBy = “?”)
- 21. Cascading CascadeType: ALL DETACH MERGE PERSIST REFRESH REMOVE
- 22. FetchType Eager Lazy
- 23. Composite PK @Embeddable Serializable
- 24. Additional annotations @Transient @OrderColumn @NamedQuery @NamedNativeQuery @Sort @OrderBy @Where
- 25. Inheritance Single table Joined Table-per-cpass
- 26. Single table(table per hierarchy) Parent: @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @DiscriminatorColumn(name = "?",discriminatorType = DiscriminatorType.?) Child: @DiscriminatorValue("dog")
- 27. Table per class(table per concrete class) Parent: @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) Child: @AttributeOverrides({ @AttributeOverride(name="?", column=@Column(name="?")) })
- 28. Table per subclass, Joined Parent: @Inheritance(strategy = InheritanceType.JOINED) Child: @PrimaryKeyJoinColumn(name = "?", referencedColumnName = "?")
- 29. Isolation levels Read uncommited(Dirty read, Non repeatable read, Phantom read) Read commited(Non repeatable read, Phantom read)
- 30. Isolation levels session.doWork(connection -> { connection.setTransactionIsolation(Connection.?); });
- 31. Optimistic vs pessimistic locking @Version where version = ?
- 32. Caching Level 1 (session) Level 2 (session factory)
- 33. Level 2 caching EHCache Infinispan OSCache SwarmCache Modes: NORMAL, GET, PUT
- 34. Level 2 caching, EHCache POM.xml: org.hibernate hibernate-ehcache ? hibernate.cfg.xml: true org.hibernate.cache.EhCacheProvider org.hibernate.cache.ehcache.SingletonEhCacheRegionFactory cache-config.xml cache-config.xml:
- 35. HQL from ? alias where ____ select alias.? from ? from ? alias where param >
- 36. Named queries @NamedQuery(name = "?", query="?") session.getNamedQuery(“?”)
- 37. Pagination query.setFirstResult query.setMaxResults
- 38. Query -> list iterate uniqueResult
- 39. Criteria api session.createCriteria(Entity.class) .add(Restrictions.?) .addOrder(Order.?) .setProjections(Projections.?)
- 41. Скачать презентацию