Visão Geral
Esete Curso Java Hibernate Introduction é um workshop para desenvolvedores que ensina aos alunos a estrutura de mapeamento O/R relacional de objeto mais popular para ambientes Java. O mapeamento relacional de objetos em grandes aplicativos corporativos é difícil. A tarefa é tão difícil que o problema de armazenar e recuperar objetos em um banco de dados relacional tem seu próprio nome – incompatibilidade de impedância. Nesta aula, os alunos aprendem os conceitos de mapeamento objeto-relacional e os vários problemas e opções disponíveis em Java para abordar a persistência de objetos.
O Hibernate permite que você desenvolva classes persistentes seguindo idiomas Java comuns – incluindo associação, herança, polimorfismo, composição e o framework de coleções Java. O Hibernate Query Language, projetado como uma extensão mínima orientada a objetos para SQL, fornece uma ponte elegante entre o objeto e os mundos relacionais. O Hibernate também permite que você expresse consultas usando SQL nativo ou critérios baseados em Java e consultas de exemplo. A JBoss integrou o Hibernate em sua linha de produtos JEMS (Java Enterprise Middleware System). A especificação da Java Persistence API (EJB 3) deriva grande parte de sua arquitetura do Hibernate, e as anotações do Hibernate são compatíveis com as anotações do Java Persistence. Isso promete tornar o Hibernate uma tecnologia ainda mais importante. Com esses fundamentos, o curso então explora os fundamentos da persistência e configuração de objetos do Hibernate. Ele também se aprofunda nos detalhes do mapeamento, consultas, transações e simultaneidade do Hibernate.
Objetivo
Depois de fazer este Curso Java Hibernate Introduction, os desenvolvedores serão capazes de criar camadas de persistência de aplicativos mais rápidas, flexíveis e fáceis de manter e superar a incompatibilidade de impedância com o framework Hibernate.
Conteúdo Programatico
- Persistence
- Object Persistence
- Object/Relational Paradigms
- Impedance Mismatch
- Object Relational Mapping ()ORM)
- Persistent Framework
- Hibernate
- Java ORM/Persistent Frameworks
Hibernate Architecture
- Hibernate Architecture and PI
- Hibernate Installation/Setup
- Configuration
- Configuration Properties
- Mapping Files
- Persistent Classes
- Persistent Classes
- POJOs
- JavaBeans
- Basic Mapping
- Class to Table Mappings
- Property Mapping
- Identifiers
- Generators
- Natural Keys
- Identifier Exposure
- Quoting SQL Tables and Columns
Working with Persistent Objects
- Entity Lifecycle
- Transient Stat
- Persistent State
- Persistent Object Updates and Automatic Dirty Checking
- Detached State
- Deleted
- Object Identifiers Revisited
- Merge
Components
- Domain Model
- Entities and Values
- Components
Associations
- Many-to-one
- Bidirectional Many-to-one
- Other Collections
- Many-to-one List
- Many-to-one Map
- Many-to-one Bag
- Many-to-one Array
More Associations
- One-to-one
- Bidirectional One-to-one
- Many-to-many
- Bidirectional Many-to-many
- Many-to-many Identifier Bag
Value Type Collections
- Collections of Value Types
- Collections of Components
- Sorting Collections
Inheritance
- Inheritance Mapping Strategies
- Table per concrete class
- Table per subclass
- Table per hierarchy
- Inheritance Mapping Pros/Cons
- Polymorphism
- Table per concrete class with unions
- Choosing an Inheritance Strategy
Transitive Persistence
- Transitive Persistence
- Lazy Loading
- Proxies
- Eager Loading
- What’s a Proxy?
- Detached Objects and Proxies
- Polymorphic Associations Revisited
Custom Mapping
- Custom Mapping Types
- UserType
- Enumerations
HQL
- Hibernate Object Fetching Options
- Hibernate Query
- HQL
- HQL Parameters
- Named Queries
- Native SQL
Criteria
- Hibernate Criteria
- Restrictions
- Query By Example
- Scrolling
- Pagination
- Query Hints
- Query Option Pros/Cons
Transactions and Concurrency
- The Java Transaction
- Hibernate Transaction Configuration
- Hibernate Transaction API
- Concurrency
- Isolation Levels
- Optimistic Locking
- Versioning
- Optimistic Locking without Versioning
- Pessimistic Locking
Appendix A: Fetching Strategies
- N + 1 Selects
- Fetching Strategies
- Join Fetching
- Subselect Fetching
- Batch Fetching
- Queries and Fetching Strategies
- Cartesian Product Problem
Appendix B: Cache
- The Promise of Cache
- Hibernate Caching Architecture
- First Level Cache
- Second Level Cache
- Cache Concurrency
- Configuring Second Level Cache
- Cache Regions
- Eviction
Appendix C: Annotations
- Metadata
- Annotations Pros/Cons
- Configuring Hibernate Annotations
- EJB3/JPA Annotations
- Entity Annotations
- Embedded Object (Component) Annotations
- Inheritance Annotatio