Aula 06 - Modelagem de Dados com JPA/Hibernate 🗄️
Nesta aula, vamos dar vida aos dados: transformar classes Java em tabelas reais de banco de dados, usando o JPA e o Hibernate.
😊 O que é JPA e Hibernate?
- JPA (Java Persistence API): uma especificação — um conjunto de regras de como o Java deve lidar com persistência de dados.
- Hibernate: a implementação mais usada dessa especificação. É ele quem realmente traduz seus objetos Java em comandos SQL.
📊 De Classe Java para Tabela
classDiagram
class Produto {
+Long id
+String nome
+double preco
} Vira, no banco de dados, uma tabela produto com colunas id, nome e preco.
🧠 Anotando uma Entidade
Important
@Entity marca a classe como uma tabela. @Id marca o atributo como chave primária. @GeneratedValue diz ao banco para gerar o valor automaticamente.
@Entity
public class Produto {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
private double preco;
// getters e setters
}
🧠 Configurando o Banco de Dados
No arquivo application.properties, configuramos a conexão:
spring.datasource.url=jdbc:postgresql://localhost:5432/meubanco
spring.datasource.username=postgres
spring.datasource.password=senha
spring.jpa.hibernate.ddl-auto=update
Tip
ddl-auto=update faz o Hibernate criar/atualizar as tabelas automaticamente com base nas suas classes @Entity — ótimo para desenvolvimento, mas raramente usado assim em produção.
📝 Exercícios Progressivos
- Básico: Qual a diferença entre JPA e Hibernate?
- Básico: Para que serve a anotação
@Id? - Intermediário: O que faz a propriedade
ddl-auto=update? - Intermediário: Por que essa configuração não é recomendada em produção?
- Desafio: Modele uma entidade
Clientecom os atributosid,nome,emailedataCadastro.
🚀 Mini-projeto: Crie a entidade Produto anotada com JPA e configure a conexão com um banco PostgreSQL (ou H2 em memória, para testar rapidamente).