Spring JPA Query Visualizer là một công cụ mã nguồn mở giúp developers xem trực tiếp SQL được sinh ra bởi Hibernate/JPA ngay trong IDE (IntelliJ & VSCode).
Dừng việc đoán mò ORM đang làm gì. Hãy nhìn thấy nó.
Khi làm việc với Spring Data JPA hoặc Hibernate, developers thường tự hỏi:
"SQL thực sự mà ORM đang chạy là gì?"
Spring JPA Query Visualizer sẽ bắt, định dạng và hiển thị mọi SQL query được thực thi bởi Hibernate — ngay tại nơi bạn code.
| Tính năng | Mô tả |
|---|---|
| 🔍 Xem trước SQL trực tiếp | Xem chính xác SQL được sinh ra cho các method repository hoặc entity |
| 🧩 Mapping Entity-to-Table | Xem field nào của entity map với column nào của database |
| 🎨 Định dạng & Highlight SQL | Syntax highlighting và query beautifier |
| ⚡ Phân tích Performance | Phát hiện N+1 queries và các statement chạy lâu |
| 🧠 Tích hợp IDE | Hoạt động trực tiếp trong IntelliJ và VSCode |
| ☁️ Cloud Dashboard (sắp có) | Upload logs để phân tích performance sâu hơn |
[Spring Boot App]
|
└── JPA/Hibernate
└── SQL Interceptor (Core Library)
|
└── REST/WebSocket
|
└── [IDE Plugin: IntelliJ / VSCode]
└── Interactive SQL Mapping View
Các thành phần chính:
- Core Library (Java) — hook vào Hibernate qua
StatementInspectorhoặcDatasourceProxy
→ Bắt SQL + metadata - IDE Plugin — hiển thị query & entity mapping trực tiếp trong IDE
- (Tùy chọn) Cloud Dashboard để phân tích performance và team analytics
| Layer | Công nghệ |
|---|---|
| Core | Java 17+, Spring Boot, Hibernate StatementInspector |
| Data Transport | REST API / WebSocket |
| SQL Parser | JSQLParser |
| IntelliJ Plugin | JetBrains Plugin SDK (Kotlin) |
| VSCode Plugin | TypeScript + VSCode Extension API |
| UI Rendering | React (VSCode webview) / Kotlin Swing (IntelliJ) |
- Chạy Spring Boot app với dependency
spring-jpa-query-visualizer-core. - Tool sẽ intercept mọi SQL được thực thi bởi Hibernate.
- Queries và metadata (entity, method, execution time) được gửi đến local port (
7777mặc định). - IDE plugin lắng nghe port đó.
- Khi bạn mở repository hoặc entity, nó sẽ hiển thị SQL được sinh ra — được format đẹp.
Ví dụ:
// UserRepository.java
User findByEmail(String email);Tool sẽ hiển thị:
SELECT u.id, u.name, u.email
FROM users u
WHERE u.email = ?implementation("com.spring-jpa-visualizer:spring-jpa-query-visualizer-core:0.1.0")<dependency>
<groupId>com.spring-jpa-visualizer</groupId>
<artifactId>spring-jpa-query-visualizer-core</artifactId>
<version>0.1.0</version>
</dependency>- Cài đặt qua JetBrains Marketplace → Tìm kiếm "Spring JPA Query Visualizer"
- Cài đặt từ VSCode Marketplace → "Spring JPA Query Visualizer"
| Phase | Mô tả | Trạng thái |
|---|---|---|
| Phase 1 | Core interceptor (bắt SQL, ghi vào JSON/log) | 🟢 Đang phát triển |
| Phase 2 | IntelliJ MVP plugin (hiển thị SQL popup) | ⏳ Kế hoạch |
| Phase 3 | VSCode plugin + SQL formatting | ⏳ Kế hoạch |
| Phase 4 | Cloud dashboard (query performance) | ⏳ Kế hoạch |
| Phase 5 | Pro version (alerts, explain plan, team dashboard) | 🔜 Tương lai |
Chúng tôi rất hoan nghênh sự đóng góp! Bạn có thể giúp bằng cách:
- Submit pull requests
- Mở feature ideas hoặc bug reports
- Cải thiện documentation hoặc translations
git clone https://github.com/yourusername/spring-jpa-query-visualizer.git
cd spring-jpa-query-visualizerVui lòng đọc CONTRIBUTING.md trước khi bắt đầu.
- 💬 Discord (sắp có)
- 🧵 Twitter/X: @SpringJPAVisualizer
- 🧠 Blog: https://spring-jpa-visualizer.dev (tương lai)
Apache License 2.0 — miễn phí cho sử dụng cá nhân và thương mại.
Được truyền cảm hứng từ:
- p6spy
- Datasource-Proxy
- JSQLParser
- Cộng đồng Java & Spring developers 🙌
Nếu bạn thấy Spring JPA Query Visualizer hữu ích, hãy:
- ⭐ Star repo này
- 🐦 Chia sẻ trên Twitter / LinkedIn
- 💬 Đóng góp ý tưởng / code
Hãy cùng làm cho việc debug Hibernate trở nên minh bạch và dễ dàng.
spring-jpa-query-visualizer/
├── spring-jpa-query-visualizer-core/ # Core library
├── spring-jpa-query-visualizer-intellij/ # IntelliJ plugin
├── spring-jpa-query-visualizer-vscode/ # VSCode extension
├── docs/ # Documentation
├── examples/ # Example projects
└── README.md