Skip to main content

2 posts tagged with "dynamic-search"

View All Tags

Dynamic Search Is Not One WHERE Clause: TeaQL vs Conventional Rust

· 14 min read
Philip Z
Architect

A dynamic order page sounds ordinary: search, paginate, show status cards, and preview a few products. The interesting part begins when we ask what a production-grade implementation must actually contain—and count all of it.

We built the same read model with TeaQL Rust and conventional Rust plus SQLite. The first comparison was wrong in three important ways. Correcting those errors made the result more useful than the original benchmark.

Dynamic Search and Expression System

· One min read
TeaQL Team
Core Team

Over 60 commits in a single month introduced dynamic search, the expression API, event system, and web framework.

DynamicSearchHelper

Build search queries from external input (JSON, request parameters) without writing Java code:

DynamicSearchHelper.search(ctx, "Order", jsonFilter, pageable);

Ideal for generic admin panels, mobile backends, and API gateways.

ValueExpression API

Reference entity properties in a type-safe way:

Q.orders().filter(
ValueExpression.of(Q.orders().comment("Query orders").purpose("Load data").amount()).gt(100)
).comment("Query orders").purpose("Load data").executeForList(ctx);

ID Generator System

  • Remote ID Generator: Fetch IDs from a remote service
  • Default ID Generator: Local UUID-based fallback
  • Configurable per-entity ID generation strategy

Property Change Events

PropertyChangeEvent tracks which properties changed during an entity update, enabling selective SQL UPDATE and audit logging.

Web Response Framework

  • WebStyle: UI style definitions
  • WebAction: Frontend action descriptors
  • WebResponse: Standardized response objects

Soft Delete

entity.setDeleted(true); // soft delete
entity.recover(); // restore