from_raw_sql example
This commit is contained in:
parent
2dc8401c53
commit
25432e68d0
@ -1,6 +1,6 @@
|
||||
use crate::DbBackend;
|
||||
use sea_query::{
|
||||
inject_parameters, MysqlQueryBuilder, PostgresQueryBuilder, SqliteQueryBuilder, Values,
|
||||
inject_parameters, MysqlQueryBuilder, PostgresQueryBuilder, SqliteQueryBuilder, Value, Values
|
||||
};
|
||||
use std::fmt;
|
||||
|
||||
@ -24,7 +24,17 @@ impl Statement {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn from_string_values_tuple(
|
||||
pub fn from_sql_and_values<I>(db_backend: DbBackend, sql: &str, values: I) -> Self
|
||||
where
|
||||
I: IntoIterator<Item = Value>,
|
||||
{
|
||||
Self::from_string_values_tuple(
|
||||
db_backend,
|
||||
(sql.to_owned(), Values(values.into_iter().collect())),
|
||||
)
|
||||
}
|
||||
|
||||
pub(crate) fn from_string_values_tuple(
|
||||
db_backend: DbBackend,
|
||||
stmt: (String, Values),
|
||||
) -> Statement {
|
||||
|
@ -76,7 +76,50 @@ impl<E> Select<E>
|
||||
where
|
||||
E: EntityTrait,
|
||||
{
|
||||
pub fn from_raw_sql(stmt: Statement) -> SelectorRaw<SelectModel<E::Model>> {
|
||||
/// ```
|
||||
/// # #[cfg(feature = "mock")]
|
||||
/// # use sea_orm::{error::*, tests_cfg::*, MockDatabase, Transaction, DbBackend};
|
||||
/// #
|
||||
/// # let db = MockDatabase::new(DbBackend::Postgres)
|
||||
/// # .append_query_results(vec![
|
||||
/// # vec![
|
||||
/// # cake::Model {
|
||||
/// # id: 1,
|
||||
/// # name: "New York Cheese".to_owned(),
|
||||
/// # },
|
||||
/// # ],
|
||||
/// # ])
|
||||
/// # .into_connection();
|
||||
/// #
|
||||
/// use sea_orm::{entity::*, query::*, tests_cfg::cake};
|
||||
///
|
||||
/// # let _: Result<(), DbErr> = async_std::task::block_on(async {
|
||||
/// #
|
||||
/// assert_eq!(
|
||||
/// cake::Entity::find().from_raw_sql(
|
||||
/// Statement::from_sql_and_values(
|
||||
/// DbBackend::Postgres, r#"SELECT "cake"."id", "cake"."name" FROM "cake""#, vec![]
|
||||
/// )
|
||||
/// ).one(&db).await?,
|
||||
/// Some(cake::Model {
|
||||
/// id: 1,
|
||||
/// name: "New York Cheese".to_owned(),
|
||||
/// })
|
||||
/// );
|
||||
/// #
|
||||
/// # Ok(())
|
||||
/// # });
|
||||
///
|
||||
/// assert_eq!(
|
||||
/// db.into_transaction_log(),
|
||||
/// vec![
|
||||
/// Transaction::from_sql_and_values(
|
||||
/// DbBackend::Postgres, r#"SELECT "cake"."id", "cake"."name" FROM "cake""#, vec![]
|
||||
/// ),
|
||||
/// ]);
|
||||
/// ```
|
||||
#[allow(clippy::wrong_self_convention)]
|
||||
pub fn from_raw_sql(self, stmt: Statement) -> SelectorRaw<SelectModel<E::Model>> {
|
||||
SelectorRaw {
|
||||
stmt,
|
||||
selector: SelectModel { model: PhantomData },
|
||||
|
@ -20,4 +20,4 @@ pub use select::*;
|
||||
pub use traits::*;
|
||||
pub use update::*;
|
||||
|
||||
pub use crate::executor::{InsertResult, UpdateResult};
|
||||
pub use crate::{Statement, InsertResult, UpdateResult};
|
Loading…
x
Reference in New Issue
Block a user