Trait sea_orm::entity::FromQueryResult[][src]

pub trait FromQueryResult: Sized {
    fn from_query_result(res: &QueryResult, pre: &str) -> Result<Self, DbErr>;

    fn from_query_result_optional(
        res: &QueryResult,
        pre: &str
    ) -> Result<Option<Self>, DbErr> { ... }
fn find_by_statement(stmt: Statement) -> SelectorRaw<SelectModel<Self>> { ... } }

Required methods

Provided methods

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

#[derive(Debug, PartialEq, FromQueryResult)]
struct SelectResult {
    name: String,
    num_of_cakes: i32,
}

let res: Vec<SelectResult> = SelectResult::find_by_statement(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![
        SelectResult {
            name: "Chocolate Forest".to_owned(),
            num_of_cakes: 1,
        },
        SelectResult {
            name: "New York Cheese".to_owned(),
            num_of_cakes: 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![]
    ),]
);

Implementors