0001 — Micronaut Data JDBC, sem Hibernate¶
Status: Aprovado · Responsável: Gustavo Madruga · Atualizado em: 2026-06-11 · Decidido em: 2026-04-01
Contexto¶
O processador persiste fatos (bi_*) e metadados (xls_*) em PostgreSQL. A
camada de acesso a dados precisava ser escolhida junto com o framework. A stack
ficou em Java 21 + Micronaut 4 (preferido a Spring Boot pelo startup rápido
e footprint menor em container).
Decisão¶
Usar Micronaut Data JDBC — repositórios sobre entidades @MappedEntity —
sem Hibernate/JPA. O schema é versionado por Flyway (classpath:db/migration),
nunca por DDL automático de ORM.
Consequências¶
- Controle explícito do SQL — essencial para o UPSERT diff-aware e o bulk via COPY (ver decisão 0006 e decisão 0007).
- Sem cache de 1º nível, lazy-loading ou flush implícito surpreendendo o fluxo.
- Migrações revisáveis em PR; sem divergência entre o modelo Java e o banco.
Alternativas consideradas¶
- Hibernate/JPA: abstrai SQL demais; o SQL implícito atrapalha o controle fino que o pipeline diff-aware exige. Descartado.
- Spring Data / Spring Boot: startup e memória maiores num alvo de container; Micronaut atende o perfil. Descartado já na escolha do framework.