Skip to main content

Query Builder Basics

Hysteria ORM provides two query builders for different use cases:

BuilderType SafetyUse Case
ModelQueryBuilderPartialModel-aware queries with hooks, relations
QueryBuilderNoneRaw 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:


Next: Model Query Builder