Trait sea_orm::TryGetableMany
source · [−]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
fn try_get_many(
res: &QueryResult,
pre: &str,
cols: &[String]
) -> Result<Self, TryGetError>
fn try_get_many(
res: &QueryResult,
pre: &str,
cols: &[String]
) -> Result<Self, TryGetError>
THe method to perform a query on multiple columns
Provided Methods
fn find_by_statement<C>(
stmt: Statement
) -> SelectorRaw<SelectGetableValue<Self, C>> where
C: IntoEnumIterator + Iden,
fn find_by_statement<C>(
stmt: Statement
) -> SelectorRaw<SelectGetableValue<Self, C>> where
C: IntoEnumIterator + Iden,
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![]
),]
);