Documentation
Complete guide to ExoQuery - Language Integrated Query for Kotlin Multiplatform
Overview
Start here
Getting Started
Installation and quick start
Core Concepts
Fundamental concepts
Query Operations
Day-to-day operations
- Basic Operations Map and Filter operations for querying data
- Joins Inner joins, left joins, and implicit joins in ExoQuery
- Grouping GROUP BY and HAVING clauses in ExoQuery
- Sorting ORDER BY with sortedBy and sortedByDescending
- Subqueries Correlated subqueries and nested queries
- Window Functions Using SQL window functions with OVER, PARTITION BY, and ORDER BY
Actions
INSERT, UPDATE, DELETE
Advanced Features
Power user features
- SQL Fragment Functions Reusable SQL functions with @SqlFragment annotation
- Dynamic Queries Runtime query generation with @SqlDynamic annotation
- Free Blocks Using custom SQL with free blocks for UDFs and advanced syntax
- Transactions Execute multiple queries and actions in a transaction
- Polymorphic Query Abstraction Using generics and interfaces to create reusable query components
- Local Variables Defining and using local variables inside SQL blocks
Data Handling
Serialization and naming
- Serialization How ExoQuery uses kotlinx.serialization for data encoding and decoding
- Custom Type Encoding Using custom encoders and decoders for domain-specific types
- Column and Table Naming Using @SerialName, @ExoEntity, and @ExoField annotations
- Nested Datatypes Working with nested data structures in ExoQuery
- Multiple / Conflicting Serializers Using ExoQuery with other kotlinx-serialization formats like JSON
Schema-First
Code generation
Reference
API and function reference