CRUD - Jpa e Hibernate - Relacionamento Unidirecional

Este projeto consiste em um crud com JPA e Hibernate. Foi criado para fins de estudo e aprendizado de novas tecnologias. Nesta branch, todos os relacionamentos feitos entre as classes são unidirecionais.

Tecnologias utilizadas

Linguagens e convenções

  • Java
  • SQL
  • JPA
  • JPQL

Banco de Dados

  • MariaDB
  • H2 Database para testes integrados

Frameworks

  • Lombok
  • Mapstruct
  • Hibernate️
  • Criteria API

Testes

  • Junit5
  • Parameterised Tests
  • Mockito
  • SystemStubs (Testes inputs System.in)

Build

  • Maven
  • Docker (Container MariaDb)

Log

  • Sl4j
  • Log4j2

Design Patterns utilizados

  • Builder
  • DTO
  • MVC
  • Repository
  • Singleton no acesso ao banco de dados
  • Utility Classes
  • Filter (CriteriaApi)

Organização das classes

Como usar o aplicativo?

Inicialização com Docker Compose

  1. Faça um fork, baixe ou clone o programa

  2. Certifique-se de ter o Docker instalado em sua máquina e inicie-o

  3. Abra o terminal de sua IDE

  4. Execute o seguinte comando no terminal para iniciar o MariaDB e seu database consumidos pelo app:

    Inicializa database direto no container
    docker-compose up -d
    
  5. Utilize o app pela IDE e divirta-se :)

Diagrama Entidade Relacional

Workflow do projeto

Contribuição

Contribuições são bem-vindas! Sinta-se à vontade para abrir problemas (issues) ou enviar solicitações de pull (pull requests) com melhorias, correções de bugs ou novas funcionalidades.

  Somos o que fazemos repetidas vezes, então, a excelência não é um ato, mas sim um hábito
  - Aristóteles, Ética a Nicômaco