Aplicações Java para a web com JSF e JPA
Gilliard Cordeiro
	Conteúdo
Neste livro, você encontrará as especificações mais utilizadas do Java, explicadas com exemplos práticos e claros que mostram como usar cada tecnologia em separado e como utilizá-las em conjunto.
Conheças as melhores práticas da JPA 2.0, seus mapeamentos, caches e truques de performance, e tire o máximo do JSF 2.2 compreendendo seu ciclo de vida e as novidades que surgiram nas atuais versões das especificações.
Sumário
Parte 1 — Contato inicial
- 1 Introdução
 - 1.1 A evolução da integração entre Java e Bancos de dados
 - 1.2 Como era a vida com o JDBC?
 - 1.3 Diminuição da impedância por meio do mapeamento
 - 1.4 Bibliotecas ORM e o Hibernate
 - 1.5 Muitos frameworks ORM, como evitar o vendor lock-in?
 - 1.6 O desenvolvimento web com servlets e o padrão MVC
 - 1.7 Tirando HTML do código Java com as JavaServer Pages
 - 1.8 Organize seu código com a separação de responsabilidades
 - 1.9 O MVC e os frameworks
 - 1.10 Por que usar JSF?
 - 1.11 O primeiro contato com o JSF
 - 1.12 Considerações finais
 
- 2 Primeiros passos com a JPA
 - 2.1 Definição do modelo
 - 2.2 Configuração básica do persistence.xml
 - 2.3 Escolha o dialeto do banco de dados
 - 2.4 Automatização da criação e evolução das tabelas
 - 2.5 Gravação do primeiro dado no banco de dados
 - 2.6 Consultas simples no banco de dados com a JPA
 - 2.7 Exclusão de dados com a JPA
 - 2.8 Considerações finais
 
- 3 Primeiros passos com o JSF
 - 3.1 Onde e como defino telas com o JSF?
 - 3.2 Criação da tela e dos inputs básicos de dados
 - 3.3 commandButton, Managed Beans e a submissão de formulários
 - 3.4 Passe dados da tela para o Managed Bean
 - 3.5 Como receber os parâmetros diretamente no método
 - 3.6 Gravação do automóvel no banco de dados
 - 3.7 Liste os dados com o dataTable
 - 3.8 Mas minha listagem está executando várias consultas no banco...
 - 3.9 Exclusão de dados e o commandLink
 - 3.10 Considerações finais
 
Parte 2 — Domine as ferramentas
- 4 Entendendo a JPA
 - 4.1 O padrão de projetos Data Access Object (DAO)
 - 4.2 JPA não é um DAO genérico, é contextual
 - 4.3 Ciclo de vida de um objeto na JPA
 - 4.4 Considerações finais
 
- 5 Como mapear tudo... ou nada!
 - 5.1 Definições de entidade
 - 5.2 Faça atributos não serem persistidos com o @Transient
 - 5.3 Mapeie chaves primárias simples
 - 5.4 Mapeie chaves compostas
 - 5.5 A anotação @Basic
 - 5.6 @Table, @Column e @Temporal
 - 5.7 @Version e lock otimista
 - 5.8 Relacionamentos muitos para um com @ManyToOne
 - 5.9 @OneToOne
 - 5.10 Relacionamentos bidirecionais
 - 5.11 O que tem a ver o dono do relacionamento com a operação em cascata?
 - 5.12 Organize melhor suas entidades e promova reaproveitamento com @Embeddable e @Embedded
 - 5.13 Relacionamentos um para muitos com o @OneToMany e @ManyToOne
 - 5.14 A importância do Lazy Loading, o carregamento preguiçoso
 - 5.15 @Lob
 - 5.16 @ElementCollection
 - 5.17 Relacionamentos muitos para muitos com o @ManyToMany
 - 5.18 Customize as colunas de relacionamentos com @JoinColumn e @JoinColumns
 - 5.19 Configure as tabelas auxiliares com @JoinTable
 - 5.20 Considerações finais
 
- 6 Consultas com a JPQL e os problemas comuns na integração com o JSF
 - 6.1 Filtre dados com a Java Persistence Query Language (JPQL)
 - 6.2 Como aplicar funções às consultas
 - 6.3 Onde estão meus joins?
 - 6.4 Execute suas consultas e use parâmetros
 - 6.5 Utilize funções de agregação
 - 6.6 Faça subconsultas com a JPQL
 - 6.7 Agrupamentos e HAVING
 - 6.8 Consultas complexas... resultados complexos?
 - 6.9 Use o Select New e esqueça os arrays de Object
 - 6.10 Organize suas consultas com Named Queries
 - 6.11 Execute as Named Queries
 - 6.12 Relacionamentos Lazy, N+1 Query e Join Fetch
 - 6.13 Evite a LazyInitializationException com o OpenEntityManagerInView
 - 6.14 O problema das N+1 consultas e como resolvê-lo
 - 6.15 Considerações finais
 
- 7 Entenda o JSF e crie aplicações web
 - 7.1 Se prepare para um mundo diferente, baseado em componentes
 - 7.2 A web stateless contra a web stateful
 - 7.3 O ciclo de vida das requisições no JSF
 - 7.4 Aja sobre as fases do JSF com os PhaseListeners
 - 7.5 Conheça os componentes do JSF
 - 7.6 A diferença entre Action e ActionListener
 - 7.7 Padronização no carregamento de recursos
 - 7.8 Entenda os conversores nativos, o f:convertDateTime e o f:convertNumber
 - 7.9 Conversores customizados
 - 7.10 Conheça os validadores nativos
 - 7.11 E quando os validadores nativos não fazem o que eu quero?
 - 7.12 Novidade: JSF com GET e bookmarkable URLs
 - 7.13 Regras de navegação
 - 7.14 Entenda os escopos e saiba como e quando trabalhar com cada um
 - 7.15 Considerações finais
 
- 8 Validações simplificadas na JPA e no JSF com a Bean Validation
 - 8.1 Trabalhe com os validadores e crie sua própria validação
 - 8.2 Organize grupos de validação
 - 8.3 A integração entre Bean Validation e JPA
 - 8.4 A integração entre Bean Validation e JSF
 - 8.5 Considerações finais
 
Parte 3 - Desenvolvendo a fluência
- 9 Enriquecendo nossa aplicação JSF
 - 9.1 Combos em cascata e commands em dataTable
 - 9.2 Mostre mensagens com h:message e h:messages
 - 9.3 Internacionalizando nossa aplicação
 - 9.4 JSF e AJAX
 - 9.5 Organize o código das telas com templates
 - 9.6 Composite Components: criando nossos próprios componentes a partir de outros
 - 9.7 Criar um jar com componentes customizados
 - 9.8 Considerações finais
 
- 10 Truques que podem aumentar a escalabilidade e a performance da sua aplicação
 - 10.1 Utilize o cache de segundo nível da JPA
 - 10.2 Faça cache de consultas
 - 10.3 Colhendo estatísticas da nossa camada de persistência
 - 10.4 Relacionamentos extra-lazy
 - 10.5 Paginação virtual e real de dados
 - 10.6 Utilizando Pool de conexões
 - 10.7 Tornando o JSF mais leve com o uso inteligente de AJAX
 - 10.8 Quando possível, manipule componentes JSF no lado do cliente
 - 10.9 Considerações finais
 
- 11 Conclusão
 
- 12 Apêndice: iniciando projeto com Eclipse
 - 12.1 Adicionando o Tomcat no Eclipse
 - 12.2 Criando o projeto web
 - 12.3 Baixando os jars do JSF
 - 12.4 Configurando a JP
 
Autor

Gilliard Cordeiro
Gilliard Santos Cordeiro é Analista de Sistemas pela UFMS e especialista em Engenharia de Software pela Uniderp. É também tomador de tereré, tirador de foto, pescador e karateca amador. Iniciou tomando tereré desde muito cedo, como todo sul-mato-grossense, mas na programação só teve o primeiro contato na faculdade, em 2002. O início profissional foi em 2003, onde como estagiário programou em Lotus Script e um ano depois começou a desenvolver em Java. Algum tempo depois, junto com outros amigos fundou o JUGMS, que hoje organiza anualmente o Javaneiros, o maior evento de desenvolvedores de Mato Grosso do Sul. O gosto pela pesca e pelo karatê veio depois de "velho", aos 28 anos. Foi coordenador de novas tecnologias (P&D) no Tribunal de Justiça de MS, onde atualmente é diretor da área de desenvolvimento de sistemas. Ele mantém um blog em http://gilliard.eti.br.
O que dizem deste livro
- 
			

Rafael Odon @rafael_odon
Avaliei e vou usar em sala o livro "Aplicações Java para Web com JSF e JPA" da @casadocodigo … Boa didática! #recomendo
 - 
			
 
Dados do produto
- Número de páginas:
 - 346
 - ISBN:
 - 978-85-66250-01-5
 - Data publicação:
 - 07/2012