# abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm- architecture

> Architecture diagram of the GitHub repository abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-
- Repository: https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-

## Overview

This repository is a collection of independent Spring Boot/Spring Data JPA teaching applications, not one integrated product. Their principal pattern is a command-line runner invoking a service, which performs domain operations through a repository backed by a relational database. The sampled code confirms this flow for employee CRUD, bank operations, and person–phone associations; the tree identifies additional demos for query styles, projections, large objects, and multiple databases. No README was provided, and unsampled modules are represented by their visible domain and source paths without assuming their internal wiring.

Main entry points: [`Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/service/PersonServiceImpl.java`](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/service/PersonServiceImpl.java) (Person and phones), [`Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/service/EmployeSservice.java`](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/service/EmployeSservice.java) (Employee service), [`Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/service/BankServiceImpl.java`](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/service/BankServiceImpl.java) (Account operations), [`Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/runners/Runners.java`](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/runners/Runners.java) (CRUD runner)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_crud["CRUD and Queries"]
  node_crud_runner["CRUD runner<br/>[Runners.java]"]
  node_crud_service["Employee service"]
  node_crud_repo["Employee repository"]
  node_employee["Employee entity<br/>[Employe.java]"]
  node_employee_db[("Relational database")]
  node_paging_service["Paging and sorting"]
  node_findby_service["Derived queries"]
  node_jpql_runner["JPQL query runner<br/>[QueryRunner.java]"]
  node_jpql_service["JPQL service"]
  node_projection_demo["Projection demos"]
end

subgraph group_domain["Domain Demos"]
  node_doctor_registration["Doctor registration"]
  node_doctor_read["Doctor group reads"]
  node_student["Student mini-project"]
  node_bank_runner["Bank runner<br/>[BankRunners.java]"]
  node_bank_service["Account operations"]
  node_bank_repo["Bank repository"]
  node_bank_entity["Bank account<br/>[Bank.java]"]
  node_bank_db[("Relational database")]
end

subgraph group_advanced["Advanced Persistence"]
  node_person_service["Person and phones"]
  node_person_repo["Person repository"]
  node_phone_repo["Phone repository"]
  node_person_entity["Person entity<br/>[Person.java]"]
  node_phone_entity["Phone entity<br/>[PhoneNumbers.java]"]
  node_large_object_service["Resume and image storage"]
  node_large_object_repo["Seeker repository"]
  node_multi_db_service["Product and offer access"]
end

node_cli(("Command-line launch"))

node_cli -->|"starts app"| node_crud_runner
node_crud_runner -->|"invokes"| node_crud_service
node_crud_service -->|"calls CRUD"| node_crud_repo
node_crud_repo -->|"reads/writes"| node_employee_db
node_crud_service -->|"uses entity"| node_employee
node_paging_service -->|"pages and sorts"| node_employee_db
node_findby_service -->|"queries"| node_employee_db
node_jpql_runner -->|"invokes"| node_jpql_service
node_bank_runner -->|"invokes"| node_bank_service
node_bank_service -->|"calls"| node_bank_repo
node_bank_service -->|"updates"| node_bank_entity
node_bank_repo -->|"reads/writes"| node_bank_db
node_person_service -->|"saves and reads"| node_person_repo
node_person_service -->|"saves and deletes"| node_phone_repo
node_person_service -->|"builds association"| node_person_entity
node_person_service -->|"builds association"| node_phone_entity
node_large_object_service -->|"stores and loads"| node_large_object_repo
node_multi_db_service -.-> node_cli

click node_crud_runner "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/runners/Runners.java"
click node_crud_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/service/EmployeSservice.java"
click node_crud_repo "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/repository/IEmployeRepository.java"
click node_employee "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/model/Employe.java"
click node_paging_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj31DataJPA-PangingAndSortingRepository/src/main/java/com/nt/service/EmployeServiceImpl.java"
click node_findby_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj33DataJPA-FindByMethods/src/main/java/com/nt/service/EmployeServiceImpl.java"
click node_jpql_runner "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj36DataJPA-QueryAnnotation_HQL_JPQL/src/main/java/com/nt/runners/QueryRunner.java"
click node_jpql_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj36DataJPA-QueryAnnotation_HQL_JPQL/src/main/java/com/nt/service/EmployeServiceImpl.java"
click node_doctor_registration "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj28DataJPA-2DoctorGroupRegistrationMysql/src/main/java/com/nt/service/DoctorsServiceImpl.java"
click node_doctor_read "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj28DataJPA-3DoctorGroupReadMysql-1/src/main/java/com/nt/service/DoctorServiceImpl.java"
click node_student "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj29DataJPAMiniProject/src/main/java/com/nt/service/StudentServiceImpl.java"
click node_bank_runner "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/runners/BankRunners.java"
click node_bank_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/service/BankServiceImpl.java"
click node_bank_repo "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/repository/IBankRepository.java"
click node_bank_entity "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/model/Bank.java"
click node_person_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/service/PersonServiceImpl.java"
click node_person_repo "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/repository/IPersonRepository.java"
click node_phone_repo "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/repository/IPhoneNumbersRepository.java"
click node_person_entity "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/entity/Person.java"
click node_phone_entity "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/entity/PhoneNumbers.java"
click node_large_object_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj39DataJPA-LargeObject-Oracle/src/main/java/com/nt/service/NaukriServiceImpl.java"
click node_large_object_repo "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj39DataJPA-LargeObject-Oracle/src/main/java/com/nt/repository/INaukriRepository.java"
click node_multi_db_service "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj41DataJPA-IntractingWith2DB/src/main/java/com/nt/service/FlipkartServiceImpl.java"
click node_projection_demo "https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj34DataJPA-FindByMethods_StaticScalaOrProjectivity/src/main/java/com/nt/type/IProjectionOperations.java"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_crud_runner,node_crud_service,node_crud_repo,node_employee,node_employee_db,node_paging_service,node_findby_service,node_jpql_runner,node_jpql_service,node_projection_demo toneBlue
class node_doctor_registration,node_doctor_read,node_student,node_bank_runner,node_bank_service,node_bank_repo,node_bank_entity,node_bank_db toneAmber
class node_person_service,node_person_repo,node_phone_repo,node_person_entity,node_phone_entity,node_large_object_service,node_large_object_repo,node_multi_db_service toneMint
class node_cli toneIndigo
```

## Components

### CRUD and Queries

- [CRUD runner](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/runners/Runners.java): `Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/runners/Runners.java`
- [Employee service](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/service/EmployeSservice.java): `Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/service/EmployeSservice.java`
- [Employee repository](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/repository/IEmployeRepository.java): `Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/repository/IEmployeRepository.java`
- [Employee entity](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/model/Employe.java): `Boot-IOC-Proj30DataJPA-CRUDRepositoryAllMethods/src/main/java/com/nt/model/Employe.java`
- **Relational database**
- [Paging and sorting](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj31DataJPA-PangingAndSortingRepository/src/main/java/com/nt/service/EmployeServiceImpl.java): `Boot-IOC-Proj31DataJPA-PangingAndSortingRepository/src/main/java/com/nt/service/EmployeServiceImpl.java`
- [Derived queries](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj33DataJPA-FindByMethods/src/main/java/com/nt/service/EmployeServiceImpl.java): `Boot-IOC-Proj33DataJPA-FindByMethods/src/main/java/com/nt/service/EmployeServiceImpl.java`
- [JPQL query runner](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj36DataJPA-QueryAnnotation_HQL_JPQL/src/main/java/com/nt/runners/QueryRunner.java): `Boot-IOC-Proj36DataJPA-QueryAnnotation_HQL_JPQL/src/main/java/com/nt/runners/QueryRunner.java`
- [JPQL service](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj36DataJPA-QueryAnnotation_HQL_JPQL/src/main/java/com/nt/service/EmployeServiceImpl.java): `Boot-IOC-Proj36DataJPA-QueryAnnotation_HQL_JPQL/src/main/java/com/nt/service/EmployeServiceImpl.java`
- [Projection demos](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj34DataJPA-FindByMethods_StaticScalaOrProjectivity/src/main/java/com/nt/type/IProjectionOperations.java): `Boot-IOC-Proj34DataJPA-FindByMethods_StaticScalaOrProjectivity/src/main/java/com/nt/type/IProjectionOperations.java`

### Domain Demos

- [Doctor registration](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj28DataJPA-2DoctorGroupRegistrationMysql/src/main/java/com/nt/service/DoctorsServiceImpl.java): `Boot-IOC-Proj28DataJPA-2DoctorGroupRegistrationMysql/src/main/java/com/nt/service/DoctorsServiceImpl.java`
- [Doctor group reads](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj28DataJPA-3DoctorGroupReadMysql-1/src/main/java/com/nt/service/DoctorServiceImpl.java): `Boot-IOC-Proj28DataJPA-3DoctorGroupReadMysql-1/src/main/java/com/nt/service/DoctorServiceImpl.java`
- [Student mini-project](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj29DataJPAMiniProject/src/main/java/com/nt/service/StudentServiceImpl.java): `Boot-IOC-Proj29DataJPAMiniProject/src/main/java/com/nt/service/StudentServiceImpl.java`
- [Bank runner](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/runners/BankRunners.java): `Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/runners/BankRunners.java`
- [Account operations](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/service/BankServiceImpl.java): `Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/service/BankServiceImpl.java`
- [Bank repository](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/repository/IBankRepository.java): `Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/repository/IBankRepository.java`
- [Bank account](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/model/Bank.java): `Boot-IOC-Proj38DataJPA-BankProject/src/main/java/com/nt/model/Bank.java`
- **Relational database**

### Advanced Persistence

- [Person and phones](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/service/PersonServiceImpl.java): `Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/service/PersonServiceImpl.java`
- [Person repository](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/repository/IPersonRepository.java): `Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/repository/IPersonRepository.java`
- [Phone repository](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/repository/IPhoneNumbersRepository.java): `Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/repository/IPhoneNumbersRepository.java`
- [Person entity](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/entity/Person.java): `Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/entity/Person.java`
- [Phone entity](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/entity/PhoneNumbers.java): `Boot-IOC-Proj40DataJPA-1toMAssociation_Oracle/src/main/java/com/nt/entity/PhoneNumbers.java`
- [Resume and image storage](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj39DataJPA-LargeObject-Oracle/src/main/java/com/nt/service/NaukriServiceImpl.java): `Boot-IOC-Proj39DataJPA-LargeObject-Oracle/src/main/java/com/nt/service/NaukriServiceImpl.java`
- [Seeker repository](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj39DataJPA-LargeObject-Oracle/src/main/java/com/nt/repository/INaukriRepository.java): `Boot-IOC-Proj39DataJPA-LargeObject-Oracle/src/main/java/com/nt/repository/INaukriRepository.java`
- [Product and offer access](https://github.com/abhisheksinghchouhan45/spring-boot-data-jpa-hibernate-orm-/blob/main/Boot-IOC-Proj41DataJPA-IntractingWith2DB/src/main/java/com/nt/service/FlipkartServiceImpl.java): `Boot-IOC-Proj41DataJPA-IntractingWith2DB/src/main/java/com/nt/service/FlipkartServiceImpl.java`

### Other components

- **Command-line launch**

## Connections

- Command-line launch → CRUD runner: starts app
- CRUD runner → Employee service: invokes
- Employee service → Employee repository: calls CRUD
- Employee repository → Relational database: reads/writes
- Employee service → Employee entity: uses entity
- Paging and sorting → Relational database: pages and sorts
- Derived queries → Relational database: queries
- JPQL query runner → JPQL service: invokes
- Bank runner → Account operations: invokes
- Account operations → Bank repository: calls
- Account operations → Bank account: updates
- Bank repository → Relational database: reads/writes
- Person and phones → Person repository: saves and reads
- Person and phones → Phone repository: saves and deletes
- Person and phones → Person entity: builds association
- Person and phones → Phone entity: builds association
- Resume and image storage → Seeker repository: stores and loads
- Product and offer access → Command-line launch
