You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -23,7 +23,7 @@
23
23
24
24
## Why Storm?
25
25
26
-
Storm draws inspiration from established ORMs such as Hibernate, but is built from scratch around a clear design philosophy: capturing exactly what you want to do using the minimum amount of code, optimized for modern Kotlin and Java.
26
+
Storm draws inspiration from established ORMs such as Hibernate, but is built from scratch around a clear design philosophy: capturing exactly what you want to do using the minimum amount of code, optimized for Kotlin and modern Java.
27
27
28
28
**Storm’s mission:** Make database development productive and enjoyable, with full developer control and high performance.
29
29
@@ -222,8 +222,9 @@ Deep dives into Storm's internals. You don't need these to be productive, but th
222
222
|[Hydration](docs/hydration.md)| Result mapping to records (16 min) |
223
223
|[Dirty Checking](docs/dirty-checking.md)| Update modes and change detection (19 min) |
224
224
|[Entity Cache](docs/entity-cache.md)| Transaction-scoped caching and identity (10 min) |
225
-
|[SQL Logging](docs/sql-logging.md)| Declarative query logging with `@SqlLog` (6 min) |
226
225
|[Configuration](docs/configuration.md)| System properties reference (7 min) |
226
+
|[SQL Logging](docs/sql-logging.md)| Declarative query logging with `@SqlLog` (6 min) |
227
+
|[Metrics](docs/metrics.md)| JMX runtime metrics for monitoring (5 min) |
Copy file name to clipboardExpand all lines: docs/comparison.md
+7-5Lines changed: 7 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -156,23 +156,25 @@ MyBatis is a SQL mapper that gives you full control over every query. You write
156
156
157
157
## Storm vs jOOQ
158
158
159
-
jOOQ generates Java code from your database schema, providing a type-safe SQL DSL that mirrors the structure of your tables. Storm takes the opposite direction: you define entities in code, and the metamodel is generated from those entities. jOOQ excels at complex SQL (window functions, CTEs, recursive queries) where its DSL closely follows SQL syntax. Storm excels at entity-oriented operations where automatic relationship handling and repository patterns reduce boilerplate.
159
+
jOOQ generates Java code from your database schema, providing a type-safe SQL DSL that mirrors the structure of your tables. Storm also treats the database schema as the source of truth, but instead of generating code from the schema, you write entity definitions that reflect it, and the metamodel is generated from those entities. Both frameworks provide compile-time type safety, but queries look very different. jOOQ excels at complex SQL (window functions, CTEs, recursive queries) where its DSL closely follows SQL syntax, but this means every join, column reference, and condition must be spelled out explicitly. Storm queries are more concise: the metamodel and automatic join derivation from `@FK` annotations let you write queries that focus on what you want rather than how to join it. Storm excels at entity-oriented operations where automatic relationship handling and repository patterns reduce boilerplate.
|**License**| Apache 2.0 | Commercial for some DBs |
172
173
173
174
### When to Choose Storm
174
175
175
-
- You prefer defining entities in code, not generating from schema
176
+
- You prefer writing entity definitions that reflect the schema over generating code from it
177
+
- You want concise, type-safe queries with automatic join derivation
176
178
- You want automatic relationship handling
177
179
- You value convention over configuration
178
180
- You need a fully open-source solution
@@ -287,14 +289,14 @@ Ktorm is a lightweight Kotlin ORM that uses entity interfaces and DSL-based tabl
287
289
288
290
## Summary
289
291
290
-
Storm is a newer framework, so community resources and third-party tutorials are still growing. However, the API is designed to be intuitive for developers familiar with SQL and modern Kotlin/Java.
292
+
Storm is a newer framework, so community resources and third-party tutorials are still growing. However, the API is designed to be intuitive for developers familiar with SQL and Kotlin and modern Java.
291
293
292
294
Choose Storm if you value:
293
295
-**Simplicity** over complexity
294
296
-**Predictability** over magic
295
297
-**Immutability** over managed state
296
298
-**Explicit** over implicit behavior
297
-
-**Kotlin-first** development (or modern Java with records)
299
+
-**Kotlin and modern Java** development with first-class support for both
298
300
299
301
Ready to try it? See the [Getting Started](getting-started.md) guide.
0 commit comments