Query Builder Basics
Hysteria ORM provides two query builders for different use cases:
| Builder | Type Safety | Use Case |
|---|---|---|
| ModelQueryBuilder | Partial | Model-aware queries with hooks, relations |
| QueryBuilder | None | Raw SQL, migrations, max performance |
Quick Comparison
// ModelQueryBuilder - type-safe, uses model conventions
const users = await User.query()
.where('isActive', true)
.load('posts')
.many();
// QueryBuilder - raw SQL, no model features
const users = await sql.query('users')
.where('is_active', true)
.many();
Debugging Queries
Both builders support debugging with toQuery() and unWrap():
const query = User.query().where('status', 'active');
console.log(query.toQuery()); // See generated SQL
For debugging write operations only, see:
- DryQueryBuilder - Raw SQL write debugging
- DryModelQueryBuilder - Model write debugging
Next: Model Query Builder