logo
pub trait TryGetableMany: Sized {
    fn try_get_many(
        res: &QueryResult,
        pre: &str,
        cols: &[String]
    ) -> Result<Self, TryGetError>; fn find_by_statement<C>(
        stmt: Statement
    ) -> SelectorRaw<SelectGetableValue<Self, C>>
    where
        C: IntoEnumIterator + Iden
, { ... } }
Expand description

Perform a query on multiple columns

Required methods

THe method to perform a query on multiple columns

Provided methods

use sea_orm::{entity::*, query::*, tests_cfg::cake, DeriveIden, EnumIter, TryGetableMany};

#[derive(EnumIter, DeriveIden)]
enum ResultCol {
    Name,
    NumOfCakes,
}

let res: Vec<(String, i32)> =
    <(String, i32)>::find_by_statement::<ResultCol>(Statement::from_sql_and_values(
        DbBackend::Postgres,
        r#"SELECT "cake"."name", count("cake"."id") AS "num_of_cakes" FROM "cake""#,
        vec![],
    ))
    .all(&db)
    .await?;

assert_eq!(
    res,
    vec![
        ("Chocolate Forest".to_owned(), 1),
        ("New York Cheese".to_owned(), 1),
    ]
);

assert_eq!(
    db.into_transaction_log(),
    vec![Transaction::from_sql_and_values(
        DbBackend::Postgres,
        r#"SELECT "cake"."name", count("cake"."id") AS "num_of_cakes" FROM "cake""#,
        vec![]
    ),]
);

Implementations on Foreign Types

Implementors