Pular para conteúdo

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

  1. Básico: Qual a diferença entre JPA e Hibernate?
  2. Básico: Para que serve a anotação @Id?
  3. Intermediário: O que faz a propriedade ddl-auto=update?
  4. Intermediário: Por que essa configuração não é recomendada em produção?
  5. Desafio: Modele uma entidade Cliente com os atributos id, nome, email e dataCadastro.

🚀 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).