{"id":20181344,"url":"https://github.com/lasbrdev/jpa-hibernate-persistence-store","last_synced_at":"2026-04-10T11:02:08.103Z","repository":{"id":164495941,"uuid":"638960386","full_name":"lasbrDev/jpa-hibernate-persistence-store","owner":"lasbrDev","description":"This is an example of a project that implements a store management system using Java and JPA. Environment configured with Docker to generate PostgreSQL and PGAdmin instances.","archived":false,"fork":false,"pushed_at":"2023-11-27T21:23:37.000Z","size":55,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-11-30T19:13:05.800Z","etag":null,"topics":["docker","docker-compose","java","jpa","jpa-hibernate","pgadmin","postgresql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lasbrDev.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-05-10T13:16:47.000Z","updated_at":"2023-11-27T21:28:41.000Z","dependencies_parsed_at":"2023-11-27T21:26:11.833Z","dependency_job_id":"3a6f3a81-b902-46cc-98d5-0abd0baa6f20","html_url":"https://github.com/lasbrDev/jpa-hibernate-persistence-store","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lasbrDev/jpa-hibernate-persistence-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fjpa-hibernate-persistence-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fjpa-hibernate-persistence-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fjpa-hibernate-persistence-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fjpa-hibernate-persistence-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lasbrDev","download_url":"https://codeload.github.com/lasbrDev/jpa-hibernate-persistence-store/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lasbrDev%2Fjpa-hibernate-persistence-store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31639524,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-10T07:40:12.752Z","status":"ssl_error","status_checked_at":"2026-04-10T07:40:11.664Z","response_time":98,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","java","jpa","jpa-hibernate","pgadmin","postgresql"],"created_at":"2024-11-14T02:35:12.342Z","updated_at":"2026-04-10T11:02:08.086Z","avatar_url":"https://github.com/lasbrDev.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Projeto de Gerenciamento de Loja\n\nEste é um projeto de exemplo que implementa um sistema de gerenciamento de uma loja usando Java e JPA (Java Persistence API). O projeto inclui classes para manipulação de entidades como produtos, clientes, pedidos e categorias, bem como testes de desempenho e consultas usando Criteria API.\n\n## Estrutura do Projeto\n\n### `model`\n\nEste pacote contém as classes de modelo, como `Product`, `Client`, `Order`, `OrderItem`, `Category`, `PersonalData`, `Computing` e `Book`. Essas classes representam as entidades do sistema e são mapeadas para o banco de dados usando JPA.\n\n### `dao`\n\nContém as classes responsáveis por realizar operações de acesso a dados, como `ProductDAO`, `ClientDAO`, `RequestDAO` e `CategoryDAO`. Essas classes utilizam o `EntityManager` para interagir com o banco de dados.\n\n### `tests`\n\nContém classes de teste que demonstram o uso das classes DAO e a realização de consultas específicas, como `CriteriaTest`, `PerformanceQueries`, `ProductRegistration` e `RequestRegistration`.\n\n### `util`\n\nFornece utilitários para interação com o JPA, como a classe `JPAUtil` que cria e fornece instâncias de `EntityManager`.\n\n### `vo`\n\nContém a classe `SalesReportVo`, que é um objeto de valor utilizado para representar dados de relatórios de vendas.\n\n```bash\n└───main\n    ├───java\n    │   └───br\n    │       └───com\n    │           └───lasbr\n    │               ├───dao\n    │               ├───model\n    │               ├───tests\n    │               ├───util\n    │               └───vo\n    └───resources\n        └───META-INF\n```\n\n### Docker Compose (docker-compose.yml):\n\nExiste um arquivo docker-compose.yml, na raiz do projeto que define serviços para um banco de dados PostgreSQL (postgres) e PgAdmin (pgadmin).\nEsses serviços estão na mesma rede chamada REDESTORE.\nO banco de dados PostgreSQL é usado para armazenar dados da aplicação.\n\n## Tecnologias Utilizadas\n\n**Back-end:** Java, JPA Hibernate\n\n**Banco de Dados:** PostgreSQL\n\n**Tool Admin:** PGAdmin\n\n**Conteiner** Docker, Docker-Compose\n\n\n\n\n\n## Configurações\n\nPara executar a aplicação, é necessário ter o Docker instalado.\nO arquivo docker-compose.yml pode ser utilizado para iniciar containers do PostgreSQL e PgAdmin.\nCertifique-se de que ambos os serviços (postgres e pgadmin) estejam na mesma rede (REDESTORE) para garantir a conectividade.\n\n1. Postgres Service:\n\n* image: Utiliza a imagem mais recente do PostgreSQL do Docker Hub.\n* container_name: Define o nome do contêiner como store-persistence.\n* environment: Configura variáveis de ambiente, como o nome do banco de dados, usuário e senha.\n* ports: Mapeia a porta 5432 do host para a porta 5432 do contêiner, permitindo a conexão com o banco de dados.\n* networks: Associa o contêiner à rede denominada REDESTORE.\n\n2. PgAdmin Service:\n\n* image: Utiliza a imagem do PgAdmin4 do Docker Hub.\n* container_name: Define o nome do contêiner como store-pgadmin.\n* environment: Configura variáveis de ambiente, como o e-mail e senha padrão do PgAdmin4.\n* ports: Mapeia a porta 5050 do host para a porta 80 do contêiner, permitindo o acesso à interface web do PgAdmin4.\n* networks: Associa o contêiner à rede denominada REDESTORE.\n* depends_on: Garante que o contêiner PgAdmin4 seja iniciado somente após o contêiner PostgreSQL.\n\n3. Networks:\n\n* REDESTORE: Define uma rede personalizada chamada REDESTORE para garantir que os serviços PgAdmin4 e PostgreSQL possam se comunicar por meio dessa rede.\n\n4. Como usar:\n\n* Execute docker-compose up -d no diretório onde o docker-compose.yml está localizado.\n* O Docker irá baixar as imagens e iniciar os contêineres.\n* O PostgreSQL estará acessível na porta 5432, e o PgAdmin4 estará acessível na porta 5050 do host.\n* Ao configurar o PgAdmin4, adicione um novo servidor usando o nome do serviço PostgreSQL (postgres), host postgres, e as credenciais definidas no arquivo docker-compose.yml.\n* Certifique-se de que ambos os serviços estejam na mesma rede (REDESTORE), permitindo a comunicação direta entre eles.\n* Este arquivo Docker Compose facilita a criação de ambientes de desenvolvimento, fornecendo um banco de dados PostgreSQL e uma interface web PgAdmin4 para gerenciamento do banco de dados. A rede compartilhada (REDESTORE) permite que esses serviços se comuniquem. Certifique-se de ajustar as configurações conforme necessário para atender aos requisitos do seu projeto.\n\n```yaml\nversion: '3.8'\n\nservices:\n  postgres:\n    image: postgres:latest\n    container_name: store-persistence\n    environment:\n      POSTGRES_DB: store_db\n      POSTGRES_USER: postgres\n      POSTGRES_PASSWORD: lasBr01\n    ports:\n      - \"5432:5432\"\n    networks:\n      - REDESTORE\n\n  pgadmin:\n    image: dpage/pgadmin4\n    container_name: store-pgadmin\n    environment:\n      PGADMIN_DEFAULT_EMAIL: admin@example.com\n      PGADMIN_DEFAULT_PASSWORD: admin\n      PGADMIN_LISTEN_PORT: 80\n    ports:\n      - \"5050:80\"\n    networks:\n      - REDESTORE\n    depends_on:\n      - postgres\n\nnetworks:\n  REDESTORE:\n```\n\n\n## Melhorias\n\nO projeto foi inicialmente startado com um banco de dados em memória, o H2. No entanto, foi substituído pelo PostgreSQL para proporcionar mais dinamismo e torná-lo mais próximo da realidade possível. Utilizou-se a ferramenta pgAdmin para manipular o banco de dados. Ambos, pgAdmin e PostgreSQL, foram configurados no docker-compose para aprimorar a experiência no desenvolvimento.\n\nAtualmente, o projeto está em fase de implementação/refatoração, visando torná-lo ainda mais robusto e leve.\n\n\n## Licença\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasbrdev%2Fjpa-hibernate-persistence-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flasbrdev%2Fjpa-hibernate-persistence-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flasbrdev%2Fjpa-hibernate-persistence-store/lists"}