Skip to main content

ColumnTrait

Trait ColumnTrait 

Source
pub trait ColumnTrait:
    IdenStatic
    + IntoEnumIterator
    + FromStr {
    type EntityName: EntityName;

Show 34 methods // Required method fn def(&self) -> ColumnDef; // Provided methods fn enum_type_name(&self) -> Option<&'static str> { ... } fn entity_name(&self) -> SeaRc<dyn Iden> { ... } fn as_column_ref(&self) -> (SeaRc<dyn Iden>, SeaRc<dyn Iden>) { ... } fn eq<V>(&self, v: V) -> SimpleExpr where V: Into<Value> { ... } fn ne<V>(&self, v: V) -> SimpleExpr where V: Into<Value> { ... } fn gt<V>(&self, v: V) -> SimpleExpr where V: Into<Value> { ... } fn gte<V>(&self, v: V) -> SimpleExpr where V: Into<Value> { ... } fn lt<V>(&self, v: V) -> SimpleExpr where V: Into<Value> { ... } fn lte<V>(&self, v: V) -> SimpleExpr where V: Into<Value> { ... } fn between<V>(&self, a: V, b: V) -> SimpleExpr where V: Into<Value> { ... } fn not_between<V>(&self, a: V, b: V) -> SimpleExpr where V: Into<Value> { ... } fn like<T>(&self, s: T) -> SimpleExpr where T: IntoLikeExpr { ... } fn not_like<T>(&self, s: T) -> SimpleExpr where T: IntoLikeExpr { ... } fn starts_with<T>(&self, s: T) -> SimpleExpr where T: Into<String> { ... } fn ends_with<T>(&self, s: T) -> SimpleExpr where T: Into<String> { ... } fn contains<T>(&self, s: T) -> SimpleExpr where T: Into<String> { ... } fn max(&self) -> SimpleExpr { ... } fn min(&self) -> SimpleExpr { ... } fn sum(&self) -> SimpleExpr { ... } fn count(&self) -> SimpleExpr { ... } fn is_null(&self) -> SimpleExpr { ... } fn is_not_null(&self) -> SimpleExpr { ... } fn if_null<V>(&self, v: V) -> SimpleExpr where V: Into<Value> { ... } fn is_in<V, I>(&self, v: I) -> SimpleExpr where V: Into<Value>, I: IntoIterator<Item = V> { ... } fn is_not_in<V, I>(&self, v: I) -> SimpleExpr where V: Into<Value>, I: IntoIterator<Item = V> { ... } fn in_subquery(&self, s: SelectStatement) -> SimpleExpr { ... } fn not_in_subquery(&self, s: SelectStatement) -> SimpleExpr { ... } fn into_expr(self) -> Expr { ... } fn into_returning_expr(self, db_backend: DatabaseBackend) -> Expr { ... } fn select_as(&self, expr: Expr) -> SimpleExpr { ... } fn select_enum_as(&self, expr: Expr) -> SimpleExpr { ... } fn save_as(&self, val: Expr) -> SimpleExpr { ... } fn save_enum_as(&self, val: Expr) -> SimpleExpr { ... }
}
Expand description

API for working with a Column. Mostly a wrapper of the identically named methods in sea_query::Expr

Required Associated Types§

Required Methods§

Source

fn def(&self) -> ColumnDef

Define a column for an Entity

Provided Methods§

Source

fn enum_type_name(&self) -> Option<&'static str>

Get the enum name of the column type

Source

fn entity_name(&self) -> SeaRc<dyn Iden>

Get the name of the entity the column belongs to

Source

fn as_column_ref(&self) -> (SeaRc<dyn Iden>, SeaRc<dyn Iden>)

get the name of the entity the column belongs to

Source

fn eq<V>(&self, v: V) -> SimpleExpr
where V: Into<Value>,

Source

fn ne<V>(&self, v: V) -> SimpleExpr
where V: Into<Value>,

Source

fn gt<V>(&self, v: V) -> SimpleExpr
where V: Into<Value>,

Source

fn gte<V>(&self, v: V) -> SimpleExpr
where V: Into<Value>,

Source

fn lt<V>(&self, v: V) -> SimpleExpr
where V: Into<Value>,

Source

fn lte<V>(&self, v: V) -> SimpleExpr
where V: Into<Value>,

Source

fn between<V>(&self, a: V, b: V) -> SimpleExpr
where V: Into<Value>,

use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};

assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Id.between(2, 3))
        .build(DbBackend::MySql)
        .to_string(),
    "SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`id` BETWEEN 2 AND 3"
);
Source

fn not_between<V>(&self, a: V, b: V) -> SimpleExpr
where V: Into<Value>,

use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};

assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Id.not_between(2, 3))
        .build(DbBackend::MySql)
        .to_string(),
    "SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`id` NOT BETWEEN 2 AND 3"
);
Source

fn like<T>(&self, s: T) -> SimpleExpr
where T: IntoLikeExpr,

use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};

assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Name.like("cheese"))
        .build(DbBackend::MySql)
        .to_string(),
    "SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`name` LIKE 'cheese'"
);
Source

fn not_like<T>(&self, s: T) -> SimpleExpr
where T: IntoLikeExpr,

use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};

assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Name.not_like("cheese"))
        .build(DbBackend::MySql)
        .to_string(),
    "SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`name` NOT LIKE 'cheese'"
);
Source

fn starts_with<T>(&self, s: T) -> SimpleExpr
where T: Into<String>,

This is a simplified shorthand for a more general like method. Use like if you need something more complex, like specifying an escape character.

§Examples
use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};

assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Name.starts_with("cheese"))
        .build(DbBackend::MySql)
        .to_string(),
    "SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`name` LIKE 'cheese%'"
);
Source

fn ends_with<T>(&self, s: T) -> SimpleExpr
where T: Into<String>,

This is a simplified shorthand for a more general like method. Use like if you need something more complex, like specifying an escape character.

§Examples
use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};

assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Name.ends_with("cheese"))
        .build(DbBackend::MySql)
        .to_string(),
    "SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`name` LIKE '%cheese'"
);
Source

fn contains<T>(&self, s: T) -> SimpleExpr
where T: Into<String>,

This is a simplified shorthand for a more general like method. Use like if you need something more complex, like specifying an escape character.

§Examples
use sea_orm::{entity::*, query::*, tests_cfg::cake, DbBackend};

assert_eq!(
    cake::Entity::find()
        .filter(cake::Column::Name.contains("cheese"))
        .build(DbBackend::MySql)
        .to_string(),
    "SELECT `cake`.`id`, `cake`.`name` FROM `cake` WHERE `cake`.`name` LIKE '%cheese%'"
);
Source

fn max(&self) -> SimpleExpr

See also SeaQuery’s method with same name.

Source

fn min(&self) -> SimpleExpr

See also SeaQuery’s method with same name.

Source

fn sum(&self) -> SimpleExpr

See also SeaQuery’s method with same name.

Source

fn count(&self) -> SimpleExpr

See also SeaQuery’s method with same name.

Source

fn is_null(&self) -> SimpleExpr

See also SeaQuery’s method with same name.

Source

fn is_not_null(&self) -> SimpleExpr

See also SeaQuery’s method with same name.

Source

fn if_null<V>(&self, v: V) -> SimpleExpr
where V: Into<Value>,

Perform an operation if the column is null

Source

fn is_in<V, I>(&self, v: I) -> SimpleExpr
where V: Into<Value>, I: IntoIterator<Item = V>,

Source

fn is_not_in<V, I>(&self, v: I) -> SimpleExpr
where V: Into<Value>, I: IntoIterator<Item = V>,

Source

fn in_subquery(&self, s: SelectStatement) -> SimpleExpr

Source

fn not_in_subquery(&self, s: SelectStatement) -> SimpleExpr

Source

fn into_expr(self) -> Expr

Construct a SimpleExpr::Column wrapped in Expr.

Source

fn into_returning_expr(self, db_backend: DatabaseBackend) -> Expr

Construct a returning Expr.

Source

fn select_as(&self, expr: Expr) -> SimpleExpr

Cast column expression used in select statement. It only cast database enum as text if it’s an enum column.

Source

fn select_enum_as(&self, expr: Expr) -> SimpleExpr

Cast enum column as text; do nothing if self is not an enum.

Source

fn save_as(&self, val: Expr) -> SimpleExpr

Cast value of a column into the correct type for database storage. It only cast text as enum type if it’s an enum column.

Source

fn save_enum_as(&self, val: Expr) -> SimpleExpr

Cast value of an enum column as enum type; do nothing if self is not an enum. Will also transform Array(Vec<Json>) into Json(Vec<Json>) if the column type is Json.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§