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
fn from_query_result(res: &QueryResult, pre: &str) -> Result<Self, DbErr>
Provided methods
fn from_query_result_optional(
res: &QueryResult,
pre: &str
) -> Result<Option<Self>, DbErr>
fn find_by_statement(stmt: Statement) -> SelectorRaw<SelectModel<Self>>
fn find_by_statement(stmt: Statement) -> SelectorRaw<SelectModel<Self>>
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![]
),]
);