JAVA - Hibernate Carga Horária: 20 Pré requisito Para o melhor aproveitamento do curso de Java - Hibernate, é imprescindível ter participado de cursos básicos de Java e HTML5 ou possuir conhecimentos equivalentes. Objetivo O curso Java - Hibernate é construído para apresentar o usuário aos recursos da transformação de classes Java em tabela de dados do Hibernate a fim de diminuir a complexidade na relação dos programas Java. O profissional poderá utilizar o framework para tornar bancos de dados tradicionais, baseados em programação orientada a objeto, compatíveis com o modelo SQL. Introdução Relembrando: Classes; Relembrando: Objetos; Relembrando: Atributos; Relembrando: Associações; Relembrando: Direção e Multiplicidade de Associações; Relembrando: Agregação e Composição; Relembrando: Herança; Relembrando: Polimorfismo.O que é Persistência?; Dificuldades dos Modelos de Dados; Mapeamento Objeto-Relacional; O que é o Hibernate; O Padrão de Projeto DAO; Um Exemplo: Persistindo Dados de um Contato. Entendendo o Hibernate Interfaces e Classes Essenciais; Session; Métodos da Interface Session; SessionFactory; Configuration; Configurando o Hibernate;Transaction; Ciclo de Vida de um Objeto Persistente; Trabalhando com Objetos Persistentes; Utilizando um Pool de Conexões com C3P0; Exemplo. Mapeamento de Classes Usando Anotações Introdução; Vantagens e Desvantagens de Anotações sobre XML.Habilitando Anotações para Mapeamentos; Mapeamento de Classes.Características Comuns de Mapeamento de Propriedades; Mapeamento de Propriedades Simples; Mapeamento de Chaves Primárias Simples; Mapeamento de Chaves Primárias Compostas.Anotações Específicas de Hibernate: Classes; Anotações Específicas de Hibernate: Campos. Mapeamento de Componentes, Herança e Associações Usando Anotações Mapeamento de Componentes; Exemplo de Herança; Uma Tabela por Hierarquia de Classes; Uma Tabela por Classe Concreta; Comparação; Mapeamento de Hierarquia de Classes; Mapeamento de Relacionamentos; Mapeamento de Relacionamentos Um para Um e Muitos para Um; Mapeamentos de Relacionamentos Um para Muitos e Muitos para Muitos; Coleções; Anotações específicas de Hibernate: Herança; Mapeamentos Específicos de Hibernate: Associações; Anotações Específicas de Hibernate: Opções de Cascata. Consultas Características gerais; Introdução a HQL; Joins; Subconsultas; Escrevendo reporting queries; Projeção; Agregação; Agrupamento; Interface Query; Consultas em SQL; Stored Procedures; Queryby Criteria; Query by Example; Associações em Query by Criteria; Projeção, Agrupamento e Agregação em Query by Criteria; Paginação. Construindo Aplicações com o Hibernate Estratégias de fetching; Transações; Problemas de Isolamento de Transações; Níveis de Isolamento; Escolhendo um Nível de Isolamento de Transações; Trancas (locks) e Trancas Pessimistas; Trancas Otimistas; Usando Cachê de Objetos; Estratégias para Gerenciar Transações. Mapeando Classes Persistentes com XML Visão Geral do Arquivo de Mapeamento; Mapeamento de classes; Mapeamento do identificador; Mapeamento de Propriedades; Tipos de Dados do Hibernate; Outros Recursos de Mapeamento; Definindo a Aplicação Modelo; Mapeando a Classe Professor; Hibernate e XDoclet. Mapeando Associações e Herança Componentes; Mapeamento de Herança; Exemplo; Uma Tabela por Hierarquia de Classes; Uma Tabela por Subclasse; Uma Tabela por Classe Concreta; Polimorfismo Implícito; Comparação; Mapeamento de Relacionamentos; Mapeando Relacionamentos Unidirecionais; Mapeando Relacionamentos Bididirecionais; Mapeando Associações Pai-Filho; Opções de cascade do Hibernate; Distinguindo o Estado de um Objeto: Transiente ou Persistente; Mapeando Coleções; Tags de Mapeamento de Coleções; Tag element; Tag key; Mapeando maps (Tabelas Hash); Mapeando listas; Mapeamento de Associações Unidirecionais Um para Um sem Tabela de Join; Mapeamento de Associações Unidirecionais Um para Muitos sem Tabela; Join; Mapeamento de Associações Bidirecionais; Exemplo de Mapeamento de Associações Bidirecionais Muitos para Muitos.