sea_orm/query/mod.rs
1//! Query builders used to express SELECT, INSERT, UPDATE, and DELETE
2//! statements against an [`Entity`](crate::EntityTrait).
3//!
4//! Most queries originate from an entity:
5//!
6//! ```ignore
7//! cake::Entity::find() // -> Select<cake::Entity>
8//! cake::Entity::insert(am) // -> Insert<cake::ActiveModel>
9//! cake::Entity::update(am) // -> UpdateOne<cake::ActiveModel>
10//! cake::Entity::delete(am) // -> DeleteOne<cake::Entity>
11//! ```
12//!
13//! The builders implement composable traits — [`QueryFilter`],
14//! [`QuerySelect`], [`QueryOrder`], [`QueryTrait`] — for adding `WHERE`
15//! clauses, joins, ordering, and column projections. Once composed, hand the
16//! query to a [`ConnectionTrait`] via `.one(db)`, `.all(db)`, `.exec(db)`,
17//! `.stream(db)`, etc.
18//!
19//! For raw SQL, use [`Statement`] together with the [`raw_sql!`](crate::raw_sql)
20//! macro.
21
22pub(crate) mod combine;
23mod debug;
24mod delete;
25mod helper;
26mod insert;
27mod join;
28#[cfg(feature = "with-json")]
29mod json;
30mod loader;
31mod select;
32mod traits;
33mod update;
34mod util;
35
36pub use combine::{SelectA, SelectB, SelectC};
37pub use debug::*;
38pub use delete::*;
39pub use helper::*;
40pub use insert::*;
41#[cfg(feature = "with-json")]
42pub use json::*;
43pub use loader::*;
44pub use select::*;
45pub use traits::*;
46pub use update::*;
47pub(crate) use util::*;
48
49pub use crate::{
50 ConnectionTrait, CursorTrait, InsertResult, PaginatorTrait, SelectExt, Statement,
51 TransactionTrait, UpdateResult, Value, Values,
52};
53pub use sea_query::ExprTrait;
54
55#[cfg(feature = "stream")]
56pub use crate::StreamTrait;