Hibernate.orgCommunity Documentation

HIBERNATE - Persistência Relacional para Java Idiomático

Documentação de Referência Hibernate

3.6.10.Final

Legal Notice

February 8, 2012


Prefácio
1. Tutorial
1.1. Parte 1 – A primeira aplicação Hibernate
1.1.1. Configuração
1.1.2. A primeira Classe
1.1.3. O mapeamento do arquivo
1.1.4. Configuração do Hibernate
1.1.5. Construindo com o Maven
1.1.6. Inicialização e Auxiliares
1.1.7. Carregando e salvando objetos
1.2. Parte 2 - Mapeando associações
1.2.1. Mapeando a classe Person
1.2.2. Uma associação unidirecional baseada em Configuração
1.2.3. Trabalhando a associação
1.2.4. Coleção de valores
1.2.5. Associações bidirecionais
1.2.6. Trabalhando com links bidirecionais
1.3. EventManager um aplicativo da web
1.3.1. Criando um servlet básico
1.3.2. Processando e renderizando
1.3.3. Implementando e testando
1.4. Sumário
2. Arquitetura
2.1. Visão Geral
2.1.1. Minimal architecture
2.1.2. Comprehensive architecture
2.1.3. Basic APIs
2.2. Integração JMX
2.3. Sessões Contextuais
3. Configuration
3.1. Configuração programática
3.2. Obtendo uma SessionFactory
3.3. Conexões JDBC
3.4. Propriedades opcionais de configuração
3.4.1. Dialetos SQL
3.4.2. Busca por união externa (Outer Join Fetching)
3.4.3. Fluxos Binários (Binary Streams)
3.4.4. Cachê de segundo nível e consulta
3.4.5. Substituição na Linguagem de Consulta
3.4.6. Estatísticas do Hibernate
3.5. Logging
3.6. Implementando um NamingStrategy
3.7. Implementing a PersisterClassProvider
3.8. Arquivo de configuração XML
3.9. Java EE Application Server integration
3.9.1. Configuração de estratégia de transação
3.9.2. SessionFactory vinculada à JNDI
3.9.3. Gerenciamento de contexto de Sessão atual com JTA
3.9.4. implementação JMX
4. Classes Persistentes
4.1. Um exemplo simples de POJO
4.1.1. Implemente um construtor de não argumento
4.1.2. Provide an identifier property
4.1.3. Prefer non-final classes (semi-optional)
4.1.4. Declare acessores e mutadores para campos persistentes (opcional)
4.2. Implementando herança
4.3. Implementando equals() e hashCode()
4.4. Modelos dinâmicos
4.5. Tuplizadores
4.6. EntityNameResolvers
5. Mapeamento O/R Básico
5.1. Declaração de mapeamento
5.1.1. Entity
5.1.2. Identifiers
5.1.3. Optimistic locking properties (optional)
5.1.4. Propriedade
5.1.5. Embedded objects (aka components)
5.1.6. Inheritance strategy
5.1.7. Mapping one to one and one to many associations
5.1.8. Id Natural
5.1.9. Any
5.1.10. Propriedades
5.1.11. Some hbm.xml specificities
5.2. Tipos do Hibernate
5.2.1. Entidades e valores
5.2.2. Valores de tipos básicos
5.2.3. Tipos de valores personalizados
5.3. Mapeando uma classe mais de uma vez
5.4. Identificadores quotados do SQL
5.5. Propriedades geradas
5.6. Column transformers: read and write expressions
5.7. Objetos de Banco de Dados Auxiliares
6. Types
6.1. Value types
6.1.1. Basic value types
6.1.2. Composite types
6.1.3. Collection types
6.2. Entity types
6.3. Significance of type categories
6.4. Custom types
6.4.1. Custom types using org.hibernate.type.Type
6.4.2. Custom types using org.hibernate.usertype.UserType
6.4.3. Custom types using org.hibernate.usertype.CompositeUserType
6.5. Type registry
7. Mapeamento de coleção
7.1. Coleções persistentes
7.2. How to map collections
7.2.1. Chaves Externas de Coleção
7.2.2. Coleções indexadas
7.2.3. Collections of basic types and embeddable objects
7.3. Mapeamentos de coleção avançados.
7.3.1. Coleções escolhidas
7.3.2. Associações Bidirecionais
7.3.3. Associações bidirecionais com coleções indexadas
7.3.4. Associações Ternárias
7.3.5. Using an <idbag>
7.4. Exemplos de coleções
8. Mapeamento de associações
8.1. Introdução
8.2. Associações Unidirecionais
8.2.1. Muitos-para-um
8.2.2. Um-para-um
8.2.3. Um-para-muitos
8.3. Associações Unidirecionais com tabelas associativas
8.3.1. Um-para-muitos
8.3.2. Muitos-para-um
8.3.3. Um-para-um
8.3.4. Muitos-para-muitos
8.4. Associações Bidirecionais
8.4.1. Um-para-muitos/muitos-para-um
8.4.2. Um-para-um
8.5. Associações Bidirecionais com tabelas associativas
8.5.1. Um-para-muitos/muitos-para-um
8.5.2. Um para um
8.5.3. Muitos-para-muitos
8.6. Mapeamento de associações mais complexas
9. Mapeamento de Componentes
9.1. Objetos dependentes
9.2. Coleções de objetos dependentes
9.3. Componentes como índices de Map
9.4. Componentes como identificadores compostos
9.5. Componentes Dinâmicos
10. Mapeamento de Herança
10.1. As três estratégias
10.1.1. Tabela por hierarquia de classes
10.1.2. Tabela por subclasse
10.1.3. Tabela por subclasse: usando um discriminador
10.1.4. Mesclar tabela por hierarquia de classes com tabela por subclasse
10.1.5. Tabela por classe concreta
10.1.6. Tabela por classe concreta usando polimorfismo implícito
10.1.7. Mesclando polimorfismo implícito com outros mapeamentos de herança
10.2. Limitações
11. Trabalhando com objetos
11.1. Estado dos objetos no Hibernate
11.2. Tornando os objetos persistentes
11.3. Carregando o objeto
11.4. Consultando
11.4.1. Executando consultas
11.4.2. Filtrando coleções
11.4.3. Consulta por critério
11.4.4. Consultas em SQL nativa
11.5. Modificando objetos persistentes
11.6. Modificando objetos desacoplados
11.7. Detecção automática de estado
11.8. Apagando objetos persistentes
11.9. Replicando objeto entre dois armazenamentos de dados diferentes.
11.10. Limpando a Sessão
11.11. Persistência Transitiva
11.12. Usando metadados
12. Read-only entities
12.1. Making persistent entities read-only
12.1.1. Entities of immutable classes
12.1.2. Loading persistent entities as read-only
12.1.3. Loading read-only entities from an HQL query/criteria
12.1.4. Making a persistent entity read-only
12.2. Read-only affect on property type
12.2.1. Simple properties
12.2.2. Unidirectional associations
12.2.3. Bidirectional associations
13. Transações e Concorrência
13.1. Sessão e escopos de transações
13.1.1. Unidade de trabalho
13.1.2. Longas conversações
13.1.3. Considerando a identidade do objeto
13.1.4. Edições comuns
13.2. Demarcação de transações de bancos de dados
13.2.1. Ambiente não gerenciado
13.2.2. Usando JTA
13.2.3. Tratamento de Exceção
13.2.4. Tempo de espera de Transação
13.3. Controle de concorrência otimista
13.3.1. Checagem de versão da aplicação
13.3.2. Sessão estendida e versionamento automático
13.3.3. Objetos destacados e versionamento automático
13.3.4. Versionamento automático customizado
13.4. Bloqueio Pessimista
13.5. Modos para liberar a conexão
14. Interceptadores e Eventos
14.1. Interceptadores
14.2. Sistema de Eventos
14.3. Segurança declarativa do Hibernate
15. Batch processing
15.1. Inserção em lotes
15.2. Atualização em lotes
15.3. A interface de Sessão sem Estado
15.4. Operações no estilo DML
16. HQL: A Linguagem de Consultas do Hibernate
16.1. Diferenciação de maiúscula e minúscula
16.2. A cláusula from
16.3. Associações e uniões
16.4. Formas de sintáxe de uniões
16.5. Referência à propriedade do identificador
16.6. A cláusula select
16.7. Funções de agregação
16.8. Pesquisas Polimórficas
16.9. A cláusula where
16.10. Expressões
16.11. A cláusula ordenar por
16.12. A cláusula agrupar por
16.13. Subconsultas
16.14. Exemplos de HQL
16.15. Atualização e correção em lote
16.16. Dicas & Truques
16.17. Componentes
16.18. Sintáxe do construtor de valores de linha
17. Consultas por critérios
17.1. Criando uma instância Criteria
17.2. Limitando o conjunto de resultados
17.3. Ordenando resultados
17.4. Associações
17.5. Busca de associação dinâmica
17.6. Exemplos de consultas
17.7. Projeções, agregações e agrupamento.
17.8. Consultas e subconsultas desanexadas.
17.9. Consultas por um identificador natural
18. SQL Nativo
18.1. Usando um SQLQuery
18.1.1. Consultas Escalares
18.1.2. Consultas de Entidade
18.1.3. Manuseio de associações e coleções
18.1.4. Retorno de entidades múltiplas
18.1.5. Retorno de entidades não gerenciadas
18.1.6. Manuseio de herança
18.1.7. Parâmetros
18.2. Consultas SQL Nomeadas
18.2.1. Utilizando a propriedade retorno para especificar explicitamente os nomes de colunas/alias
18.2.2. Usando procedimentos de armazenamento para consultas
18.3. SQL padronizado para criar, atualizar e deletar
18.4. SQL padronizado para carga
19. Filtrando dados
19.1. Filtros do Hibernate
20. Mapeamento XML
20.1. Trabalhando com dados em XML
20.1.1. Especificando o mapeamento de uma classe e de um arquivo XML simultaneamente
20.1.2. Especificando somente um mapeamento XML
20.2. Mapeando metadados com XML
20.3. Manipulando dados em XML
21. Aumentando o desempenho
21.1. Estratégias de Busca
21.1.1. Trabalhando com associações preguiçosas (lazy)
21.1.2. Personalizando as estratégias de busca
21.1.3. Proxies de associação final único
21.1.4. Inicializando coleções e proxies
21.1.5. Usando busca em lote
21.1.6. Usando busca de subseleção
21.1.7. Perfis de Busca
21.1.8. Usando busca preguiçosa de propriedade
21.2. O Cachê de Segundo Nível
21.2.1. Mapeamento de Cache
21.2.2. Estratégia: somente leitura
21.2.3. Estratégia: leitura/escrita
21.2.4. Estratégia: leitura/escrita não estrita
21.2.5. Estratégia: transacional
21.2.6. Compatibilidade de Estratégia de Concorrência de Cache Provedor
21.3. Gerenciando os caches
21.4. O Cache de Consulta
21.4.1. Ativação do cache de consulta
21.4.2. Regiões de cache de consulta
21.5. Entendendo o desempenho da Coleção
21.5.1. Taxonomia
21.5.2. Listas, mapas, bags de id e conjuntos são coleções mais eficientes para atualizar
21.5.3. As Bags e listas são as coleções de inversão mais eficientes.
21.5.4. Deletar uma vez
21.6. Monitorando desempenho
21.6.1. Monitorando uma SessionFactory
21.6.2. Métricas
22. Guia de Toolset
22.1. Geração de esquema automático
22.1.1. Padronizando o esquema
22.1.2. Executando a ferramenta
22.1.3. Propriedades
22.1.4. Usando o Ant
22.1.5. Atualizações de esquema incremental
22.1.6. Utilizando Ant para atualizações de esquema incremental
22.1.7. Validação de esquema
22.1.8. Utilizando Ant para validação de esquema
23. Additional modules
23.1. Bean Validation
23.1.1. Adding Bean Validation
23.1.2. Configuration
23.1.3. Catching violations
23.1.4. Database schema
23.2. Hibernate Search
23.2.1. Description
23.2.2. Integration with Hibernate Annotations
24. Exemplo: Pai/Filho
24.1. Uma nota sobre as coleções
24.2. Bidirecional um-para-muitos
24.3. Ciclo de vida em Cascata
24.4. Cascatas e unsaved-value
24.5. Conclusão
25. Exemplo: Aplicativo Weblog
25.1. Classes Persistentes
25.2. Mapeamentos Hibernate
25.3. Código Hibernate
26. Exemplo: Vários Mapeamentos
26.1. Empregador/Empregado
26.2. Autor/Trabalho
26.3. Cliente/Ordem/Produto
26.4. Exemplos variados de mapeamento
26.4.1. Associação um-para-um "Typed"
26.4.2. Exemplo de chave composta
26.4.3. Muitos-para-muitos com função de chave composta compartilhada
26.4.4. Conteúdo baseado em discriminação
26.4.5. Associações em chaves alternativas
27. Melhores práticas
28. Considerações da Portabilidade do Banco de Dados
28.1. Fundamentos da Portabilidade
28.2. Dialeto
28.3. Resolução do Dialeto
28.4. Geração do identificador
28.5. Funções do banco de dados
28.6. Tipos de mapeamentos
Referências